كيف يمكنني سلسلة لرسوم متحركة على نطاق ومع UIImageView فون؟

StackOverflow https://stackoverflow.com/questions/617992

سؤال

وأنا أحاول أن حجم صورة لأسفل، تغيير الصورة، ثم توسيع نطاق إعادته.

CABasicAnimation* shrink = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
shrink.toValue = [NSNumber numberWithDouble:0];
shrink.duration = 1;
    shrink.delegate = self;
    [myImageView.layer addAnimation:shrink forKey:@"shrink"];   

ويجعل يتقلص، ثم عندما يكمل، وتغيير الصورة، وبدء ينمو:

- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag 
{
    myImageView.image = [images objectAtIndex:image];
CABasicAnimation* grow = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
grow.toValue = CGAffineTransformMakeScale(1,1);
    grow.delegate = self;
grow.duration = 1;
[myImageView.layer addAnimation:grow forKey:@"grow"];   
}

وهذا يعمل كبيرة على جهاز محاكاة، ولكن على الجهاز، عند اكتمال يتقلص، وأحصل على ومضة من حجم كامل، الصورة القديمة، ثم يبدأ الرسوم المتحركة تنمو مع صورة جديدة.

وأي فكرة عن كيفية التخلص من ذلك فلاش؟

و(لقد حاولت "removedOnCompletion = NO؛". وحاول وضع affineTransform يساوي حجم تقليصها بعد الانتهاء الأول، ولكن لم يكن لدينا الكثير من الحظ)

وأي نصائح تقدير.

وكيلو بايت

وتحرير:

وممتاز! تحديد ما يلي:

shrink.fillMode = kCAFillModeForwards; 
shrink.removedOnCompletion = NO; 

وإزالتها وامض. شكرا، بن!

هل كانت مفيدة؟

المحلول

وحاول وضع fillMode الرسوم المتحركة الخاصة بك لkCAFillModeForwards. وينبغي أن يترك هذا البند كما كان في نهاية الحركة، بدلا من ذي قبل.

نصائح أخرى

ولقد كان لي نفس المشكلة عندما حاولت خلق CAAnimation آخر في طريقة animationDidStop. أقترح استخدام CAKeyframeAnimation.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top