如何将按钮移动到随机位置?

时间:2011-11-17 15:41:33

标签: ios uiview uibutton

我正在为iPhone创建一个非常简单的应用程序。

只是不知道如何让按钮在触摸时移动到随机位置(但在屏幕上)。

我正在使用Xcode 4.2。

3 个答案:

答案 0 :(得分:5)

使用arc4random()生成随机数,您可以生成x和y坐标以将按钮移动到。您想要考虑按钮的宽度和高度,以便它不会部分偏离屏幕,也不会影响屏幕宽度和高度,因此它不会完全脱离屏幕。

-(void)buttonPressed:(id)sender {
    UIButton *button = (UIButton *)sender;

    int xmin = ([button frame].size.width)/2;
    int ymin = ([button frame].size.height)/2;

    int x = xmin + (arc4random() % (view.frame.size.width - button.frame.size.width));
    int y = ymin + (arc4random() % (view.frame.size.height - button.frame.size.height));

    [button setCenter:CGPointMake(x, y)];
}

答案 1 :(得分:2)

生成随机数 Generating random numbers in Objective-C

移动你的uibutton

button.center= CGPointMake(xCoord, yCoord);

答案 2 :(得分:1)

%对浮点数不起作用,因此最好将其更改为:

- (IBAction)buttonPress:(UIButton *)sender {
    UIButton *button = (UIButton *)sender;

    int xmin = ([button frame].size.width)/2;
    int ymin = ([button frame].size.height)/2;

    int x = xmin + arc4random_uniform(self.view.frame.size.width - button.frame.size.width);
    int y = ymin + arc4random_uniform(self.view.frame.size.height - button.frame.size.height);


   [button setCenter:CGPointMake(x, y)];
}