0

我想创建一个 UIButton 在按下后在屏幕上随机移动。我想将动画与块一起使用。这是怎么做的?

4

1 回答 1

1

试试这个,这是一个简单的例子,它将使您的按钮向右移动 50 px,然后再返回(不要忘记在 IB 中链接 myButton)-

。H -

@property (nonatomic, retain) IBOutlet UIButton *myButton;

.m -

@synthesize myButton;

-(IBAction)myButtonPressed {

    CGPoint oldCentre = myButton.center;
    CGPoint newCentre = myButton.center;
    newCentre=CGPointMake(newCentre.x + 50.0, newCentre.y);

    [UIView animateWithDuration:0.3
                      delay:0.0
                    options:(UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction)
                 animations:^{
                     myButton.center = newCentre;
                 }
                 completion:^(BOOL finished){

                     [UIView animateWithDuration:0.3
                                           delay:0.0
                                         options:(UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction)
                                      animations:^{
                                          myButton.center = oldCentre;
                                      }
                                      completion:nil
                      ];
                 }
     ];

}

您可以在块中放置您喜欢的任何动画。

您可能想考虑摆脱 UIViewAnimationOptionAllowUserInteraction 位,因为如果用户在动画期间一直触摸按钮,可能会产生一些有趣的结果......

于 2012-04-16T09:07:13.643 回答