2012-02-22 12 views
19

मुझे एक हेक्सागोन खींचने और पैटर्न के रूप में एक छवि के साथ एक रंग निर्माण के साथ भरने की जरूरत है। मैंने किया:कोरग्राफिक्स फिलपथ और स्ट्रोक पथ

CGContextSaveGState(context); 
CGContextSetLineCap(context, kCGLineCapRound); 
CGContextSetFillColorWithColor(context, [[UIColor colorWithPatternImage:[UIImage imageNamed:@"patternerba.png"]] CGColor]); 
CGContextSetStrokeColorWithColor(context, [[UIColor blackColor] CGColor]); 
CGContextSetLineWidth(context, 3.0); 
// drawing hexagon here... 
CGContextStrokePath(context); 
CGContextFillPath(context); 
[[NSString stringWithFormat:@"Foo"] drawAtPoint:innerRect.origin withFont:[UIFont fontWithName:@"Helvetica" size:16]]; 
CGContextRestoreGState(context); 

लेकिन CGContextStrokePath और CGContextFillPath के आदेश से निर्भर करता है, मैं एक षट्भुज bordered लेकिन नहीं भरी या भरा लेकिन इसकी सीमा नहीं मिलता है। मैं इसे कैसे ठीक करूं?

+0

CGContextSetLineWidth में चौड़ाई बढ़ाएं .. –

उत्तर

31

CGContextDrawPath(context, kCGPathFillStroke); 

के बजाय

CGContextStrokePath(context); 
CGContextFillPath(context); 
+0

वर्क्स ग्रेट। धन्यवाद। – IssamTP

+0

आपने मेरा दिन बनाया। धन्यवाद –

0

या तो के रूप में sch सुझाव का प्रयास करें

CGContextDrawPath(context, kCGPathFillStroke); 

उपयोग करें, या FillPath कॉल करने से पहले फिर से षट्भुज आकर्षित। स्ट्रोकपैथ और फिलपाथ उस पथ को हटा दें जिसे आपने संदर्भ में जोड़ा है, इस प्रकार अगली कॉल चुपचाप पथ के बिना विफल हो जाएगी।

CGPathRef path = /* drawing hexagon here */; 
CGContextAddPath(context, path); 
CGContextStrokePath(context); 
CGContextAddPath(context, path); 
CGContextFillPath(context); 

नोट: कोड के दो खंड बराबर नहीं हैं और अलग-अलग परिणाम देते हैं।

संबंधित मुद्दे