如何使一个方法旋转一个UIView工作很多次



当用户向上滑动时,我有一个视图从屏幕底部向上滑动,当这种情况发生时,一个小箭头应该旋转,因此它现在指向向下。以类似的方式,当视图滑到屏幕底部时,箭头应该再次旋转,使其指向上方。理想情况下,我希望在每次视图滑入或滑出时调用相同的方法来旋转箭头180度。现在我用的是:

[UIView animateWithDuration:.5 animations:^{
    viewToBeRotated.transform = CGAffineTransformMakeRotation(M_PI);
}];

这工作良好的第一次,但随后不做任何进一步的方法调用,任何指针如何正确地做到这一点?

当您在视图上设置转换时,您将删除先前的转换。要同时在一个视图上应用多个变换,你必须"添加"它们。每个CGAffineTransformMake{Rotation/Scale/etc}都有一个等价的,允许你"添加"一个变换到另一个。

要解决您的问题,您可以使用以下命令:

self.iv.transform = CGAffineTransformRotate(self.iv.transform, M_PI);

最新更新