2012-12-04 6 views
6

मैं कैसे एक पंक्ति में एक सीमा के साथ एक आयत आकर्षित कर सकते हैं?कोर ग्राफिक्स एक पंक्ति में सीमा के साथ आयत

वहाँ की तरह अलग तरीके हैं:

CGContextStrokeRect(context, someRectangle); 

और

CGContextFillRect(context, someRectangle); 

लेकिन वहाँ कुछ है कि दोनों में से एक में करता है? आप को भरने और स्ट्रोक रंग पहले से निर्धारित करते हैं

उत्तर

9
- (void)drawRect:(CGRect)rect { 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGPathRef path = CGPathCreateWithRect(rect, NULL); 
    [[UIColor redColor] setFill]; 
    [[UIColor greenColor] setStroke]; 
    CGContextAddPath(context, path); 
    CGContextDrawPath(context, kCGPathFillStroke); 
    CGPathRelease(path); 
} 

हालांकि, मैं इसे से अलग रखे कॉल में स्ट्रोक & भरने किसी भी कम वर्बोज़ है यह नहीं कह सकते ...

+0

हम्म ... बिल्कुल सच, मैं सिर्फ अलग कॉल के साथ जाना होगा मुझे लगता है। धन्यवाद। – chinabuffet

-1

CGContextDrawPath यह एक ही बार होता है।

CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSetStrokeColor(context, a); 
CGContextSetFillColor(context, b); 
CGContextDrawPath(context, rect) 
+8

हम्म ... 'CGContextDrawPath' के हस्ताक्षर मैं हेडर फाइल में देख रहा है:' CGContextDrawPath (CGContextRef ग, CGPathDrawingMode मोड) ' – chinabuffet

6

तुम सिर्फ लाइन स्थान बचाने के लिए देख रहे हैं, तो आप निर्धारित कर सकते हैं अपने दो कॉल करने और इसे उपयोगिता वर्ग में रखने के लिए स्वयं की विधि।

void strokeAndFill(CGContextRef c, CGRect rect) 
{ 
    CGContextFillRect(c, rect); 
    CGContextStrokeRect(c, rect); 
}