Ответ 1
translationInView
является дельта-изменением жестов. Если вы переместите палец влево на 20 пунктов, вы получите (-20.0, 0.0)
, это уже "абсолютное" в этом смысле.
То, что вы, вероятно, имеете в виду, это то, что вы хотите locationInView
, который относительно представления передается через аргумент, даже если указанное представление не является тем, которое распознает события. Как правило, вы должны передать представление диспетчера представлений или представление, которое будет заботиться о событии, или подзаголовок, который имеет больше смысла для вашей реализации.
Кроме того, имейте в виду, что если вам нужен реальный абсолют, вы можете передать nil
через аргументы и вернуть его относительно окна (ака. "absolute" )
И если вам нужно делать логику с другими представлениями, вы можете преобразовать координату из одного вида в другой с помощью методов экземпляра UIView
: convertRect:fromView:
, convertRect:toView:
, convertPoint:fromView:
, convertPoint:toView:
. Эти методы также принимают nil
, поскольку аргумент представления означает "абсолютный" для окна.