我设置了一个动画 block ,在用户执行搜索时启动。搜索完成后,将推送一个新 View 。这工作正常,直到用户选择后退按钮并再次尝试搜索,现在动画不会开始。
[UIView animateWithDuration:0.25
delay:0.0
options:(UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveLinear)
animations:^{
_collectionImage.transform = CGAffineTransformMakeRotation(M_PI);
}
completion:^(BOOL finished){
NSLog(@"Done!");
}];
在任何人询问之前,动画只是一个旋转的圆盘,并且当推送的 View 加载时调用完成 block 。任何关于为什么它不会在多次搜索时动画的帮助将不胜感激。
谢谢。
最佳答案
嗨,这是你的问题...
将仿射值 x 更改为 y
所以现在你的变换值是 y 那么你又等于 y =y
那么它是如何工作的......
最初您需要存储变换值,然后在完成动画后对其进行动画处理,您需要恢复该值
在viewDidLoad
中这样做:
initalTransform=_collectionImage.transform;
[UIView animateWithDuration:0.25
delay:0.0
options:(UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveLinear)
animations:^{
_collectionImage.transform = CGAffineTransformMakeRotation(M_PI);
}
completion:^(BOOL finished){
NSLog(@"Done!");
_collectionImage.transform=initalTransform;
}];
试试这个......这是一个你需要按照你的逻辑实现的想法......
关于iphone - UIView animateWithDuration 仅动画一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12565842/