Arc4random错误:"二进制表达式的操作数无效('float'和'float')"

THO*_*THO 2 uibutton arc4random ios

我想在某个视图中的随机位置创建一个按钮.我搜索并阅读了一些SO主题但是我找不到解决问题的方法.

这是我的代码:

UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];
CGRect buttonRect = button1.frame;
buttonRect.size = CGSizeMake(100, 100);
button1.frame = buttonRect;

[self.arr addObject:button1];

int r = ([button1 frame].size.width)/2;

int x = r + (arc4random() % (self.view.frame.size.width - button1.frame.size.width));
int y = r + (arc4random() % (self.view.frame.size.height - button1.frame.size.height));
//ERROR:Invalid operands to binary expression ('float' and 'float')

[button1 setCenter:CGPointMake(x, y)]; 
Run Code Online (Sandbox Code Playgroud)

Jef*_*mas 9

mod(%)不适用于浮点数.

int x = r + (arc4random() % (int)(self.view.frame.size.width - button1.frame.size.width));
int y = r + (arc4random() % (int)(self.view.frame.size.height - button1.frame.size.height));
Run Code Online (Sandbox Code Playgroud)

作为附加的注释,arc4random() % …不建议使用.

这是首选方法:

int x = r + arc4random_uniform(self.view.frame.size.width - button1.frame.size.width);
int y = r + arc4random_uniform(self.view.frame.size.height - button1.frame.size.height);
Run Code Online (Sandbox Code Playgroud)