0

我试图代表一个在 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];

}

第一次单击时,视图旋转正常,但是当您再次单击时,没有任何反应。没有错误,视图没有变化。

我错过了什么?

谢谢贡索

4

1 回答 1

0

您基本上将转换设置为两次相同。在您的 else {} 语句中,使用:

变换 = CGAffineTransformMakeRotation(弧度(0));

照原样,您的代码没有采用 180 并添加 -180,而是采用 180 并将其设置为 -180。

于 2010-07-16T16:49:20.317 回答