【发布时间】:2013-01-23 02:22:40
【问题描述】:
我正在尝试使用以下代码在包含一些 CALayers 的 iPhone 上旋转 320x320 UIView(黑色):
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2];
CGAffineTransform rr=CGAffineTransformMakeRotation(M_PI_2*2);
self.transform=rr;
[UIView commitAnimations];
}
请注意,M_PI_2 是 pi/2 (math.h)。此代码将视图旋转 180°。但是,如果我将它自己更改为 M_PI_2(没有 *2),黑色 UIView 消失,内容向下和向右移动,然后大部分旋转到屏幕外。为什么是这样?我很困惑为什么视图不只是旋转 90°。
【问题讨论】:
-
M_PI_2*2很傻,就用M_PI吧。 -
当然,我在搞乱价值观,试图理解这种奇怪的行为。
-
如果我把它改成 [self.layer setAffineTransform:rr];然后它工作。很奇怪。
标签: ios uiview core-animation