Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何查看两个UIImageView';我们已经接触过了_Ios_Swift_Swift3_Uiimageview - Fatal编程技术网

Ios 如何查看两个UIImageView';我们已经接触过了

Ios 如何查看两个UIImageView';我们已经接触过了,ios,swift,swift3,uiimageview,Ios,Swift,Swift3,Uiimageview,如何确定两个UIImageView是否相互接触?我试图让它意识到他们彼此接触过,然后在里面添加一些代码 希望有人能帮忙,谢谢 我已经试过了 if (newArea.frame.intersects(yolo.frame)) { print("ok") } 您可以检查uiimageview是否重叠如下: if img1.bounds.contains(img2.bounds) { print("overlapped") } 您可以检查uiimageview是

如何确定两个UIImageView是否相互接触?我试图让它意识到他们彼此接触过,然后在里面添加一些代码

希望有人能帮忙,谢谢

我已经试过了

if (newArea.frame.intersects(yolo.frame)) {

        print("ok")

    }

您可以检查
uiimageview
是否重叠如下:

if img1.bounds.contains(img2.bounds) 
{
   print("overlapped")
}

您可以检查
uiimageview
是否重叠如下:

if img1.bounds.contains(img2.bounds) 
{
   print("overlapped")
}

在不依赖视图层次结构的情况下,执行此操作的正确方法是使用
convertRect

let r1 = newArea.superview.convert(newArea.frame, to: nil)
let r2 = yolo.superview.convert(yolo.frame, to: nil) 
if r1.intersects(r2) { stuff() }

这会将两个帧转换为屏幕坐标,然后在它们成为SuperView的局部坐标之前检查交点。

在不依赖视图层次结构的情况下执行此操作的正确方法是使用
convertRect

let r1 = newArea.superview.convert(newArea.frame, to: nil)
let r2 = yolo.superview.convert(yolo.frame, to: nil) 
if r1.intersects(r2) { stuff() }

这会将两个帧转换为屏幕坐标,然后在它们成为SuperView的本地坐标之前检查交点。

可能重复nah,该解决方案不适用于我的问题您需要澄清您的具体需求。您发布的代码检查两个视图的框架是否相交。如果这不是你想要的,那么用你需要的更具体的细节更新你的问题。也许举个例子。可能是重复的不,这个解决方案对我的问题不起作用。你需要澄清你的具体需求。您发布的代码检查两个视图的框架是否相交。如果这不是你想要的,那么用你需要的更具体的细节更新你的问题。可能会给出一个例子。这可能是一个错误的答案,因为边界基本上总是从
(0,0)
开始,当它们不相交时,这将无法识别情况。假设图像视图具有相同的
superview
,则问题中的原始代码是好的。他们可能不这样做,这就是为什么它不起作用的原因相交和触摸之间有任何区别吗?问题是要找出两个图像是否相互接触,我的代码就是这样做的。这可能是一个错误的答案,因为边界基本上总是从
(0,0)
开始,当它们不相交时,这将无法识别情况。假设图像视图具有相同的
superview
,则问题中的原始代码是好的。他们可能不这样,这就是为什么它不起作用的原因相交和触摸之间有什么区别吗?问题是要找出两个图像是否相互接触,我的代码就是这样做的。