我在阵列中有6个uibutton。我想为它们设置随机位置而不需要交叉。我尝试了一些东西,我的项目工作正常。但是,当我强制应用程序生成新按钮时,它会没有错误。
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;
}
在我看来,问题在于部分问题。但我无法弄清楚。
感谢任何建议。
最诚挚的问候,
塔哈