在初始化CGRect
之前,我试图查看CGRect
是否与数组中的任何其他CGRect
相交,但我还没有找到一个傻瓜证据有效的方法。
请注意,intersection是CGRect
s的数组。有什么需要怎么做?下面的方法有时无法生成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)
}
}
答案 0 :(得分:6)
您可以使用CGRectIntersectsRect:
let doesIntersect = arrayOfRects.reduce(false) {
return $0 || CGRectIntersectsRect($1, testRect)
}
或者(感谢Martin R的建议),您可以使用contains
方法代替reduce
:
let doesIntersect = arrayOfRects.contains { CGRectIntersectsRect($0, testRect) }
答案 1 :(得分:1)
Swift 3.0:
let rectToCompare: CGRect! // Assign your rect here
for index in 0..<self. arrayOfRects.count {
let rect = self. arrayOfRects[index]
if rect.intersects(rectToCompare) {
// Write your logic here
}
}
快乐编码......!