gpt4 book ai didi

ios - Swift:UIView 与哪个方向相交?

转载 作者:行者123 更新时间:2023-11-28 09:12:50 25 4
gpt4 key购买 nike

我正在使用 CGRectIntersectsRect 来测试 blueView(被拖动)是否与 redView(静止)相交。但是,我需要知道 redView 是否与 blueView 从红色的顶部、底部、右侧或左侧相交?是否有 CG 方法来完成此操作?

最佳答案

我不知道有任何 CG 方法可以做到这一点。

我要解决这个问题的方法是使用 CGRectIntersectsRect 检查它们是否完全相交,然后如果它们相交,则从 redView 的中心测量到 blueView 将返回它们之间的距离(X 和 Y),从中您可以判断交叉点来自哪个角度?

如果您想要更准确一点,您可以从 redView 顶部中心到 blueView 底部中心进行测量,所有 4 个边缘都相同吗?然后算出哪个最接近?

有多种方法可以解决这个问题,但我不知道有一种“一劳永逸”的解决方案。

编辑:

还在想这个,我觉得最准确的做法应该是这样的:

let leftDistance = blue.origin.x - (red.origin.x + red.width)
let rightDistance = (blue.origin.x + blue.width) - red.origin.x
let topDistance = blue.origin.y - (red.origin.y + red.height)
let bottomDistance = (blue.origin.y + blue.height) - red.origin.y

这些距离中的最小值 = 来自左侧、右侧、顶部或底部。

(P.s. 我可能把蓝色 + 红色弄错了,还有顶部和底部。我建议只是玩玩并在拖动项目时记录这些值)

关于ios - Swift:UIView 与哪个方向相交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28608992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com