我有一种方法来执行一个小的抖动动画。这个动画有点效果,但每次我从横向位置调用它时它都会旋转。当模拟器处于横向时调用动画时,整个视图会自行旋转为纵向,然后执行动画。旋转本身没有动画,它只是突然变化,没有延迟。视图中的所有内容也会发生变化,所有按钮、文本字段、图像视图等。
动画代码:
- (void)shakeView
{
CGFloat t = 8.0;
CGAffineTransform translateRight = CGAffineTransformTranslate(CGAffineTransformIdentity, 0.0, t);
CGAffineTransform translateLeft = CGAffineTransformTranslate(CGAffineTransformIdentity, 0.0, -t);
self.view.transform = translateLeft;
[UIView animateWithDuration:0.07 delay:0.0 options:UIViewAnimationOptionAutoreverse|UIViewAnimationOptionRepeat animations:^{[UIView setAnimationRepeatCount:3.0];
self.view.transform = translateRight;
}
completion:^(BOOL finished){
if (finished)
{
[UIView animateWithDuration:0.05 delay:0.0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{self.view.transform = CGAffineTransformIdentity;
}
completion:NULL];
}
}];
}
老实说,我对动画做的不多,所以我不知道我在这里做错了什么,更不用说我应该尝试什么或应该在哪里寻找答案。
我希望在保持动画的同时保持方向。