我正在尝试呈现一个在iphone屏幕上旋转的视图。我有一个按钮,当你按下它时,视图会旋转180度。
我的问题是,这只在第一次起作用。
代码如下:
-(IBAction) flip:(id)sender{
CGAffineTransform transform; //the transform matrix to be used below
//BEGIN ANIMATIONS
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2.0];
//animate
if (flag){
transform = CGAffineTransformMakeRotation( RADIANS(180) );
} else {
transform = CGAffineTransformMakeRotation( RADIANS(-180) );
}
flag = !flag;
transform = CGAffineTransformTranslate(transform, 0, 0);
self.mySuview.transform = transform;
//COMMIT ANIMATIONS
[UIView commitAnimations];
}第一次单击时,视图会正常旋转,但再次单击时什么也不会发生。视图上没有错误,也没有更改。
我遗漏了什么?
谢谢贡索
发布于 2010-07-17 00:49:20
您基本上是将变换设置为两次都相同。在else {}语句中,使用:
transform = CGAffineTransformMakeRotation(弧度(0) );
实际上,您的代码不是取180并加上- 180,而是取180并将其设置为-180。
https://stackoverflow.com/questions/2764552
复制相似问题