2009-05-13 11 views
43

मैं आईफोन प्रोग्रामिंग में एक नौसिखिया हूं, और क्वार्ट्ज और यूआईकिट का उपयोग करके अध्ययन के उद्देश्य के लिए फोन स्क्रीन पर एक रेखा खींचना चाहता हूं।मैं आईफोन पर एक लाइन कैसे आकर्षित करूं?

मैं ड्राइंग कैसे शुरू करूं?

उत्तर

147

पहले चरण में आकर्षित करने के लिए एक जगह बनाने के लिए UIView का एक उपवर्ग परिभाषित करने के लिए, है।

आप एक नया आवेदन के साथ शुरू कर रहे हैं, सबसे आसान तरीका है "विंडो आधारित के साथ शुरू करने के लिए किया जाएगा आवेदन "टेम्पलेट।

फिर नई फ़ाइल पर जाएं और "UIView" पर सेट के "सबक्लास" के साथ "उद्देश्य-सी कक्षा" बनाएं, और इसे एक नाम दें, MyView.m कहें।

अब "संसाधन" समूह खोलें और इंटरफ़ेस बिल्डर में इसे खोलने के लिए "MainWindow.xib" पर डबल क्लिक करें। यहां से आपको "विंडो" नाम की एक विंडो दिखाई देनी चाहिए। लाइब्रेरी लाने के लिए सीएमडी + शिफ्ट + एल दबाएं, और अपनी विंडो पर "व्यू" घटक खींचें, और इसे स्थिति दें ताकि आप इसे सब देख सकें। आपके नए दृश्य को चुनने के साथ, पहचान निरीक्षक को लाने और "कक्षा पहचान" के तहत सीएमडी + 4 दबाएं, ड्रॉपडाउन पर क्लिक करें और MyView चुनें।

इसके बाद, आप drawRect लागू करने की आवश्यकता: MyView.m में विधि, यहाँ कुछ उदाहरण कोड है कि एक लाइन खींचता है:

- (void)drawRect:(CGRect)rect { 
    CGContextRef c = UIGraphicsGetCurrentContext(); 

    CGFloat red[4] = {1.0f, 0.0f, 0.0f, 1.0f}; 
    CGContextSetStrokeColor(c, red); 
    CGContextBeginPath(c); 
    CGContextMoveToPoint(c, 5.0f, 5.0f); 
    CGContextAddLineToPoint(c, 50.0f, 50.0f); 
    CGContextStrokePath(c); 
} 

सहेजें सब कुछ और "निर्माण और भागो" पर क्लिक करें, तो आप अब देखना चाहिए आईफोन पर छोटी लाल रेखा।

कोर ग्राफिक्स के बारे में अधिक जानकारी के लिए, Apple दस्तावेज़ देखें। मुझे Xcode प्रलेखन व्यूअर में CGContext से शुरू होने वाले कार्यों की खोज करने में भी मदद मिली है, और उन लोगों के माध्यम से ब्राउज़ करें - कोर ग्राफिक्स फ़ंक्शंस का अधिकांश उपयोग आप "CGContext" शब्द से शुरू करेंगे।

+0

धन्यवाद टोबियास .... यह मुझे मदद मिलती है .... –

+56

+1: निम्नलिखित एक खड़ी केंद्रित क्षैतिज रेखा आकर्षित करेगा। – willc2

+0

+1 यह मेरी मदद की :) –

4

आप UIBezierPath का उपयोग करके एक रेखा भी खींच सकते हैं। RTFM के बजाय कोड के साथ जवाब देने के लिए

- (void)drawRect:(CGRect)rect { 
    CGFloat rectHeight = CGRectGetHeight(rect); 
    CGFloat rectWidth = CGRectGetWidth(rect); 

    UIBezierPath *line = [UIBezierPath bezierPath]; 
    [line moveToPoint:CGPointMake(0, rectHeight/2)]; 
    [line addLineToPoint:CGPointMake(rectWidth, rectHeight/2)]; 

    [[UIColor lightGrayColor] setStroke]; 
    [line stroke]; 
} 
संबंधित मुद्दे