UIPanGestureRecognizer translationInView与locationInView

时间:2016-07-14 16:26:11

标签: swift uikit uigesturerecognizer

我正在采取Swift的第一步

UIPanGestureRecognizer沿X坐标移动UIView的最佳方法是什么?

通常程序员使用translationInView进行平移手势

但我认为locationInView更方便用于此目的

2 个答案:

答案 0 :(得分:2)

translationInView提供视图在其包含的视图中移动的坐标变化。这是以CGPoint的形式给出的。

如果将其拖动到左侧,则可能会提供坐标:

( - 20.0,0)

locationInView以CGPoint的形式提供视图的位置。

如果你将它拖到左边并在整个手势中打印locationInView,你会看到一个带有改变坐标的日志,最后一个是它当前的休息位置。

要使用触摸位置移动UIView,您需要在手势的委托方法中将UIView的frame属性设置为手势的locationInView。

答案 1 :(得分:1)

平移手势由屏幕上的各个触摸组成,locationInView为您提供屏幕上触摸的当前位置,translationInView为您提供相对于之前触摸的移动。

平移时,您通常对动作感兴趣(例如,滚动时,您不想知道滚动的开始位置和结束位置),而不是当前位置。如果您使用平移识别器进行拖放操作,那么该位置会让您感兴趣的是最终位置(您想知道放下的位置)。