我在一个数组中有 6 个 uibuttons。而且我想为它们设置随机位置而不会相交。我尝试了一些东西,我的项目运行良好。但是当我强制应用程序生成新按钮时,它会卡住而没有错误。
for (UIButton *button in arr) {
float widthOffset = self.gameView.frame.size.width-button.frame.size.width;
float heightOffset = self.gameView.frame.size.height-button.frame.size.height;
button.frame = CGRectMake(arc4random()%(int)widthOffset, arc4random()%(int)heightOffset, button.frame.size.width, button.frame.size.height);
while ([self button:button intersectsButtonInArray:arr]) {
button.frame = CGRectMake(arc4random()%(int)widthOffset, arc4random()%(int)heightOffset, button.frame.size.width, button.frame.size.height);
}
}
-(BOOL)button:(UIButton *)button intersectsButtonInArray:(NSArray *)array {
for (UIButton *but in array) {
if (CGRectIntersectsRect(button.frame, but.frame) && ![button isEqual:but]) {
return YES;
}
}
return NO;
}
在我看来,问题出在 while 部分。但我想不通。
任何建议表示赞赏。
最好的问候,
塔哈