मैं निम्नलिखित हासिल करने की कोशिश कर रहा हूँ। दृश्य को स्पर्श के बिंदु से अंतिम फ्रेम तक शुरू करने में एनिमेट करना चाहिए जो स्पर्श किए गए दृश्य के बाहर और बाईं ओर है। एनीमेशन के दौरान यह एक चक्र होना चाहिए, सही स्थिति और आकार में बढ़ रहीएनिमेशन, CALayer
सभी नीचे दिए गए कोड के साथ अच्छी तरह से काम करता है, केवल कि एनीमेशन दौरान, परिपत्र सीमा केवल बाईं तरफ है। यह CALayer
आकार की तरह है अपने अंतिम फ्रेम में स्लाइडिंग है।
ऐसा लगता है कि यह इस प्रकार है।
एक बार एनीमेशन पूरा करता है, मैं चक्र पूरा होने की उम्मीद के रूप में की है।
CGFloat w = 300;
CGRect frame = CGRectMake(myX, myY, w, w);
CGPoint p = [touch locationInView:self.imageView];
CGRect initialFrame = CGRectMake(p.x, p.y, 0,0);
UIImageView *circle = [[UIImageView alloc] initWithFrame:frame];
circle.image = [UIImage imageNamed:@"china"];
circle.contentMode = UIViewContentModeScaleAspectFill;
circle.backgroundColor = [UIColor clearColor];
circle.layer.borderWidth = 1;
circle.layer.borderColor = [UIColor grayColor].CGColor;
circle.layer.masksToBounds = YES;
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
CGRect maskRect = CGRectMake(0, 0, w, w);
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddEllipseInRect(path, nil, maskRect);
maskLayer.path = path;
CGPathRelease(path);
circle.layer.mask = maskLayer;
circle.frame = initialFrame;
[self.imageView addSubview:circle];
[UIView animateWithDuration:1.0 animations:^{
circle.frame = frame;
}];
मैं सिर्फ CALayer
की cornerRadius
के साथ काम करने की कोशिश की है, लेकिन वह संतोषजनक परिणाम के लिए या तो नेतृत्व नहीं करता है, के रूप में त्रिज्या के रूप में अच्छी तरह से फ्रेम आकार के साथ बदलने के लिए होगा।
शानदार! विशेष रूप से आपके दस्तावेज़ीकरण प्रयास के लिए धन्यवाद। यह एक महान और क्रियाशील स्पष्टीकरण है। मैं इरादे के रूप में अब काम करता है। – Mundi