最佳答案
我已经在苹果的参考资料中搜索了大量 SO 的内容,但仍然无法解决我的问题。
UIImageView
和两个 UIButton
连接的屏幕viewDidLoad
中,每个图像先放大后放小,一个接一个,只放大一次UIImageView
’内’) ,它触发适当的 UIImageView
动画-只有一个,而不是两个-(也放大,然后向下)。我如何取消一个正在运行的动画? 我已经设法取消了所有,但最后一个... :/
下面是我的代码片段:
[UIImageView animateWithDuration:2.0
delay:0.1
options:UIViewAnimationOptionAllowUserInteraction
animations:^{
isAnimating = YES;
self.bigLetter.transform = CGAffineTransformScale(self.bigLetter.transform, 2.0, 2.0);
} completion:^(BOOL finished){
if(! finished) return;
[UIImageView animateWithDuration:2.0
delay:0.0
options:UIViewAnimationOptionAllowUserInteraction
animations:^{
self.bigLetter.transform = CGAffineTransformScale(self.bigLetter.transform, 0.5, 0.5);
} completion:^(BOOL finished){
if(! finished) return;
[UIImageView animateWithDuration:2.0
delay:0.0
options:UIViewAnimationOptionAllowUserInteraction
animations:^{
self.smallLetter.transform = CGAffineTransformScale(self.smallLetter.transform, 2.0, 2.0);
} completion:^(BOOL finished){
if(! finished) return;
[UIImageView animateWithDuration:2.0
delay:0.0
options:UIViewAnimationOptionAllowUserInteraction
animations:^{
self.smallLetter.transform = CGAffineTransformScale(self.smallLetter.transform, 0.5, 0.5);
}
completion:^(BOOL finished){
if (!finished) return;
//block letter buttons
[self.bigLetterButton setUserInteractionEnabled:YES];
[self.smallLetterButton setUserInteractionEnabled:YES];
//NSLog(@"vieDidLoad animations finished");
}];
}];
}];
}];
不知为何,smallLetter
的 UIImageView
是不正常工作,因为当按下(通过按钮) bigLetter
是取消动画正确..。
编辑:
我已经使用了这个解决方案,但仍然有问题,缩小 smallLetter
UIImageView
-不取消在所有..。
解决方案
编辑2: 我在 next/prev 方法的开头添加了这个:
- (void)stopAnimation:(UIImageView*)source {
[UIView animateWithDuration:0.01
delay:0.0
options:(UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionAllowUserInteraction)
animations:^ {
source.transform = CGAffineTransformIdentity;
}
completion:NULL
];
}
问题仍然存在... :/不知道如何中断动画链中的字母最后一个动画