检查是否在其他视图中查看?
Check if view within other view?
我正在使用 UIPanGestureRecognizer 来移动 UIImageView。现在我需要检查用户是否在其他矢量 PDF UIImageView 中移动了我的对象。
例如,我们有正在移动的红色条,我们需要在蓝色条内移动红色条(蓝色条是矢量 PDF)。我们如何检查?
示例图片:http://i.imgur.com/PKXKHBi.png
示例代码:
@IBAction func moveRedBox(recognizer: UIPanGestureRecognizer) {
let translation = recognizer.translationInView(self.view)
recognizer.view!.center = CGPoint(x:recognizer.view!.center.x + translation.x,
y:recognizer.view!.center.y + translation.y)
recognizer.setTranslation(CGPointZero, inView: self.view)
if recognizer.state == UIGestureRecognizerState.Ended {
// Here we will check that redBox inside blueBox
}
}
检查 UIImageView 的位置
image.frame.origin.x >= view.frame.origin.x
image.frame.origin.y >= view.frame.origin.y
移动完成后输入此代码
要检查两个视图是否重叠,您可以使用 CGRectIntersectsRect 函数。
更新:刚发现Swift
中CGRect也有intersects方法
let doRectsIntersect = rect1.intersects(rect2)
看看这个。这对我有帮助:
if view1.frame.contains(view2.center) {
// do your thing
}
完整示例:
@IBAction func moveRedBox(recognizer: UIPanGestureRecognizer) {
...
switch recognizer.state {
case .Ended:
if blueBox.frame.contains(recognizer.view!.center) {
print("Yep")
}
}
}
我正在使用 UIPanGestureRecognizer 来移动 UIImageView。现在我需要检查用户是否在其他矢量 PDF UIImageView 中移动了我的对象。
例如,我们有正在移动的红色条,我们需要在蓝色条内移动红色条(蓝色条是矢量 PDF)。我们如何检查?
示例图片:http://i.imgur.com/PKXKHBi.png
示例代码:
@IBAction func moveRedBox(recognizer: UIPanGestureRecognizer) {
let translation = recognizer.translationInView(self.view)
recognizer.view!.center = CGPoint(x:recognizer.view!.center.x + translation.x,
y:recognizer.view!.center.y + translation.y)
recognizer.setTranslation(CGPointZero, inView: self.view)
if recognizer.state == UIGestureRecognizerState.Ended {
// Here we will check that redBox inside blueBox
}
}
检查 UIImageView 的位置
image.frame.origin.x >= view.frame.origin.x
image.frame.origin.y >= view.frame.origin.y
移动完成后输入此代码
要检查两个视图是否重叠,您可以使用 CGRectIntersectsRect 函数。
更新:刚发现Swift
中CGRect也有intersects方法let doRectsIntersect = rect1.intersects(rect2)
看看这个。这对我有帮助:
if view1.frame.contains(view2.center) {
// do your thing
}
完整示例:
@IBAction func moveRedBox(recognizer: UIPanGestureRecognizer) {
...
switch recognizer.state {
case .Ended:
if blueBox.frame.contains(recognizer.view!.center) {
print("Yep")
}
}
}