我已设置动画块以在用户执行搜索时启动。搜索完成后,将推送新视图。这工作正常,直到用户选择后退按钮并再次尝试搜索,现在动画无法启动。
[UIView animateWithDuration:0.25
delay:0.0
options:(UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveLinear)
animations:^{
_collectionImage.transform = CGAffineTransformMakeRotation(M_PI);
}
completion:^(BOOL finished){
NSLog(@"Done!");
}];
在任何人询问之前,动画只是一个旋转的光盘,并且在推送视图加载时调用完成块。任何有关它不会在多次搜索中制作动画的帮助都将不胜感激。
感谢。
答案 0 :(得分:5)
嗨,这是你的问题...
您将仿射值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;
}];
尝试这个....这是你需要实现的逻辑......
答案 1 :(得分:0)
使用CGAffineTransformRotate(<#CGAffineTransform t#>, <#CGFloat angle#>)
你必须从当前的变换开始旋转