0

我在一个数组中有 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 部分。但我想不通。

任何建议表示赞赏。

最好的问候,
塔哈

4

0 回答 0