क्या इसे रोक दिया गया है, जबकि प्रेजेंटेशन स्थिति पढ़ने के साथ कोई समस्या है?क्या परत को रोके जाने पर कैलियर स्थिति अपडेट करने में कोई समस्या है?
मैं CALayer
को रोकने और फिर से शुरू करने का प्रयास कर रहा हूं। एक बार CALayer
रुक गया है, मैं परत की स्थिति को वर्तमान प्रस्तुति स्थिति के साथ अपडेट करना चाहता हूं। जब मैं ऐसा करने की कोशिश करता हूं, परत परत फिर से शुरू करने के बाद परत थोड़ा सा झिलमिलाहट करता है।
इस कोड को मैं रोक सकते हैं और CALayer
(एक Technical Q&A QA1673 एप्पल द्वारा आपूर्ति के आधार पर) फिर से शुरू करने का उपयोग कर रहा है: यदि मैं pauseLayer
में layer.position = ((CALayer*)[layer presentationLayer]).position;
uncomment
CFTimeInterval pausedTime;
void pauseLayer(CALayer *layer)
{
pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil];
layer.speed = 0.0;
layer.timeOffset = pausedTime;
layer.beginTime = 0;
// layer.position = ((CALayer*)[layer presentationLayer]).position;
}
void resumeLayer(CALayer *layer)
{
layer.speed = 1.0;
layer.timeOffset = 0.0;
layer.beginTime = 0.0;
CFTimeInterval _elapsedTimeSincePaused = [layer convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime;
layer.beginTime = _elapsedTimeSincePaused;
}
, परत flickers एक बार मैं resumeLayer
फोन ।
- (void) startAnimation:(id)sender
{
layer10Animation = [CABasicAnimation animationWithKeyPath:@"position.x"];
layer10Animation.duration = 1;
layer10Animation.toValue = [NSNumber numberWithInt:300];
layer10Animation.fromValue = [NSNumber numberWithInt:20];
layer10Animation.repeatCount = 100;
layer10Animation.autoreverses = YES;
[layer10 addAnimation:layer10Animation forKey:nil];
}
सादर
क्या आप झिलमिलाहट से क्या मतलब है? क्या परत गायब हो जाती है और फिर अचानक दिखाई देती है, या रोके गए स्थिति के संबंध में ऑफसेट के साथ फिर से शुरू होती है? – MiguelB
परत गायब हो जाती है और फिर अचानक प्रकट होती है। – haroldcampbell