-6

我怀疑将 uibutton 从一个位置随机移动到另一个位置,该位置是静态的。共有八个职位。使用计时器我将调用 dis 方法。

4

2 回答 2

2
  • 将这 8 个位置保存在 8 个 CGRect 中。
  • 然后使用 ; 生成 1 到 8 之间的随机数int r = arc4random() % 8
  • usingswitch语句CGRect根据 r 设置按钮的。
于 2013-05-08T11:27:12.250 回答
0

在您的 .h 文件中添加以下内容:

    @property (nonatomic, strong) NSTimer *timer;
    @property (nonatomic, strong) NSMutableArray *framesArray;

在您的 .m 文件中添加以下内容:

在您的viewDidLoad方法中:

    _timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(changeButtonPositions) userInfo:nil repeats:YES];

   _framesArray = [[NSMutableArray alloc] initWithObjects:[NSValue valueWithCGRect:CGRectMake(x_1, y_1, w_1, h_1)],[NSValue valueWithCGRect:CGRectMake(x_2, y_2, w_2, h_2)],[NSValue valueWithCGRect:CGRectMake(x_3, y_3, w_3, h_3)],[NSValue valueWithCGRect:CGRectMake(x_4, y_4, w_4, h_4)],[NSValue valueWithCGRect:CGRectMake(x_5, y_5, w_5, h_5)],[NSValue valueWithCGRect:CGRectMake(x_6, y_6, w_6, h_6)],[NSValue valueWithCGRect:CGRectMake(x_7, y_7, w_7, h_7)],[NSValue valueWithCGRect:CGRectMake(x_8, y_8, w_8, h_8)], nil];

当您想开始为 changesButton 设置动画时请执行以下操作:

[_timer fire];

并添加此方法:

- (void) changeButtonPositions{
    int number = arc4random() % 8;
    changingButton.frame = [[_framesArray objectAtIndex:number] CGRectValue];
}

当你想完成动画时,做

[_timer invalidate];
于 2013-05-08T11:35:46.377 回答