पर CABasicAnimation रोकें मैं CABasicAnimation
के साथ बनाई गई रोटेशन एनीमेशन का उपयोग कर रहा हूं। यह 2 सेकंड में UIView
घुमाता है। लेकिन UIView
को छुआ जाने पर मुझे इसे रोकने में सक्षम होना चाहिए। अगर मैं एनीमेशन को हटा देता हूं तो एनीमेशन शुरू होने से पहले दृश्य उसी स्थिति में होता है।विशिष्ट बिंदु
float duration = 2.0;
float rotationAngle = rotationDirection * ang * speed * duration;
//rotationAngle = 3*(2*M_PI);//(double)rotationAngle % (double)(2*M_PI) ;
CABasicAnimation* rotationAnimation;
rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
rotationAnimation.toValue = [NSNumber numberWithFloat: rotationAngle ];
rotationAnimation.duration = duration;
rotationAnimation.cumulative = YES;
rotationAnimation.removedOnCompletion = NO;
rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
rotationAnimation.fillMode = kCAFillModeForwards;
rotationAnimation.delegate = self;
[self.view.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
मैं UIView
के रोटेशन सही कहाँ है कैसे रोक सकता है जब इसे छुआ है,:
यहाँ मेरी एनीमेशन कोड है? मुझे पता है कि स्पर्श भाग को कैसे प्रबंधित किया जाए, लेकिन मैं यह नहीं समझ सकता कि एनीमेशन के वर्तमान कोण पर दृश्य को कैसे रोकें।
समाधान: मैं, प्रस्तुति परत के कोण हो रही एनीमेशन को दूर करने और देखने के बदलने की स्थापना करके समस्या हल हो। कोड यह रहा:
[self.view.layer removeAllAnimations];
CALayer* presentLayer = self.view.layer.presentationLayer;
float currentAngle = [(NSNumber *)[presentLayer valueForKeyPath:@"transform.rotation.z"] floatValue];
self.view.transform = CGAffineTransformMakeRotation(currentAngle);
जहां ऊपर समाधान रखा है ?? मैं हमेशा कोण प्राप्त कर रहा हूं 0.0000 – Hisenberg