我怀疑将 uibutton 从一个位置随机移动到另一个位置,该位置是静态的。共有八个职位。使用计时器我将调用 dis 方法。
问问题
95 次
2 回答
2
- 将这 8 个位置保存在 8 个 CGRect 中。
- 然后使用 ; 生成 1 到 8 之间的随机数
int r = arc4random() % 8
。 - using
switch
语句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 回答