我正在使用该-mouseDragged
方法移动一些 CALayer,现在我想在它们足够近时(或者当它们重叠一点时)“捕捉”它们。每一层都不是“正方形”:我正在绘制不同的多边形。
我认为这样做的一种方法是:
- 获取被移动层的位置;
- 获取重叠层或靠近被移动层的层;
- 在(2)为真的多边形的每一侧,我需要检查移动层的一侧和“接近”的层的一侧之间的最大距离(与图层的一侧成直角) (当图层重叠时,这是一个负值)。
- 相应地移动图层。
我不知道这是否是正确的方法。我首先想到的是:
- 如果我可以“捕捉”不止一侧会发生什么?
而且,即使我尝试这种方式,我也不知道如何处理(2)和(3)。
有没有更好的方法来做到这一点?