मैं एक घुमावदार रेखा खींचना चाहता हूं जब तक कि यह पूर्ण घूर्णन न हो जाए और एक पूर्ण सर्कल बनने के लिए जुड़ जाए, केवल सर्कल रूपरेखा न भरें। इसे कई सेकंड में एनिमेटेड होना है।आईफोन: जब तक यह एक सर्कल एनीमेशन नहीं बन जाता है तब तक एक घुमावदार रेखा खींचना
क्या कोई मुझे सही दिशा में इंगित कर सकता है? मैंने पहले से ही similar question से पूछा है, लेकिन मैंने गलत तरीके से यह कहा है कि हर किसी को समझने में कठिनाई हो रही थी और इस प्रकार यह प्रश्नों के समुद्र में खो गया।
किसी भी मदद
[संपादित करें]
के लिए कई धन्यवाद मैं वर्तमान में उप-classing UIView और अधिभावी drawRect हूँ। मुझे एक भरे सर्कल को आकर्षित करने के लिए कोड मिला लेकिन मुझे केवल स्ट्रोक की आवश्यकता है।
- (void)drawRect:(CGRect)rect {
// Drawing code
CGRect allRect = self.bounds;
CGRect circleRect = CGRectInset(allRect, 2.0f, 2.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
// Draw background
CGContextSetRGBStrokeColor(context, self.strokeValueRed, self.strokeValueGreen, self.strokeValueBlue, self.strokeValueAlpha); // white
CGContextSetRGBFillColor(context, 1.0f, 1.0f, 1.0f, 0.1f); // translucent white
CGContextSetLineWidth(context, self.lineWidth);
CGContextFillEllipseInRect(context, circleRect);
CGContextStrokeEllipseInRect(context, circleRect);
// Draw progress
CGPoint center = CGPointMake(allRect.size.width/2, allRect.size.height/2);
CGFloat radius = (allRect.size.width - 4)/2;
CGFloat startAngle = - ((float)M_PI/2); // 90 degrees
CGFloat endAngle = (self.progress * 2 * (float)M_PI) + startAngle;
CGContextSetRGBFillColor(context, 1.0f, 1.0f, 1.0f, 1.0f); // white
CGContextMoveToPoint(context, center.x, center.y);
CGContextAddArc(context, center.x, center.y, radius, startAngle, endAngle, 0);
CGContextClosePath(context);
CGContextFillPath(context);
}
[संपादित करें # 2]
मैं सभी को भरने संदर्भ हटाने के लिए कोड अपने ड्राइंग नहीं कुछ भी :(किसी भी विचार बदल लेकिन अब?
- (void)drawRect:(CGRect)rect
{
// Drawing code
CGRect allRect = self.bounds;
CGContextRef context = UIGraphicsGetCurrentContext();
// Draw background
CGContextSetRGBStrokeColor(context, self.strokeValueRed, self.strokeValueGreen, self.strokeValueBlue, self.strokeValueAlpha); // white
CGContextSetLineWidth(context, 5);
// Draw progress
CGPoint center = CGPointMake(allRect.size.width/2, allRect.size.height/2);
CGFloat radius = (allRect.size.width - 4)/2;
CGFloat startAngle = - ((float)M_PI/2); // 90 degrees
CGFloat endAngle = (self.progress * 2 * (float)M_PI) + startAngle;
CGContextAddArc(context, center.x, center.y, radius, startAngle, endAngle, 0);
CGContextStrokePath(context);
}
[संपादित करें # 3] समाधान
ठीक है मुझे सही डिकहेड की तरह लगता है! समस्या यह थी कि स्ट्रोक रंग मूल्यों को प्रारंभ नहीं किया गया था जिसका मतलब है कि रेखा खींची जा रही थी लेकिन स्पष्ट रूप से इसे नहीं देख सका !!
आपकी मदद के लिए धन्यवाद! – bennythemink