MJJ*_*LAM 1 nsarray ios cgrect swift cgrectintersectsrect
我想在初始化之前看看CGRects 是否与CGRect数组中的任何其他s相交CGRect,但我还没有找到一个可行的傻瓜证明方法.
请注意,intersection是CGRects 的数组.有什么需要怎么做?下面的方法不起作用有时生成的CGRect与数组中的一个相交我不知道我错过了什么.
for element in intersection {
while CGRectIntersectsRect(rect1, element) {
xTemp = CGFloat(arc4random_uniform(UInt32(screenSize.width - buttonWidth1)))
yTemp = CGFloat(arc4random_uniform(UInt32(screenSize.height - buttonWidth1)))
rect1 = CGRect(x: xTemp, y: yTemp, width: buttonWidth, height: buttonWidth)
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用CGRectIntersectsRect:
let doesIntersect = arrayOfRects.reduce(false) {
return $0 || CGRectIntersectsRect($1, testRect)
}
Run Code Online (Sandbox Code Playgroud)
或者(感谢Martin R的建议),您可以使用该contains方法代替reduce:
let doesIntersect = arrayOfRects.contains { CGRectIntersectsRect($0, testRect) }
Run Code Online (Sandbox Code Playgroud)