UIGestureRecognizer
Наследование
Оператор импорта
Swift
import UIKit
Objective C
@import UIKit;
Доступность
Доступный в iOS 3.2 и позже.
UIGestureRecognizer абстрактный базовый класс для конкретных классов устройства распознавания жеста. Объект устройства распознавания жеста — или, просто, устройство распознавания жеста — разъединяет логику для распознавания жеста и действия на то распознавание. Когда один из этих объектов распознает общий жест или, в некоторых случаях, изменение в жесте, он отправляет сообщение действия в каждый определяемый целевой объект.
Конкретные подклассы UIGestureRecognizer следующее:
UIGestureRecognizer класс определяет ряд общих способов поведения, которые могут быть сконфигурированы для всех конкретных устройств распознавания жеста. Это может также связаться с его делегатом (объект, принимающий UIGestureRecognizerDelegate протокол), таким образом включая настройку с более прекрасными зернами некоторых способов поведения.
Устройство распознавания жеста воздействует на касания, протестированные на хит к определенному представлению и всем подпредставлениям того представления. Это таким образом должно быть связано с тем представлением. Для создания той ассоциации, необходимо вызвать UIView метод addGestureRecognizer:. Устройство распознавания жеста не участвует в цепочке респондента представления.
Устройство распознавания жеста имеет одну или более пар целевого действия, связанных с ним. Если существуют многократные пары целевого действия, они дискретны, и не кумулятивны. Распознавание жеста приводит к отгрузке сообщения действия к цели для каждой из связанных пар. Вызванные методы действия должны соответствовать одной из следующих подписей:
Swift
func handleGesture() { }func handleGesture(gestureRecognizer: UIGestureRecognizer) { }
Objective C
- (void)handleGesture;- (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer;
Методы, соответствующие последней подписи, разрешают цели в некоторых случаях запрашивать устройство распознавания жеста, отправляющее сообщение для получения дополнительной информации. Например, цель могла спросить a UIRotationGestureRecognizer объект для угла вращения (в радианах) начиная с последнего вызова метода действия для этого жеста. Клиенты устройств распознавания жеста могут также попросить расположение жеста путем вызова locationInView: или locationOfTouch:inView:.
Жест, интерпретируемый устройством распознавания жеста, может быть или дискретным или непрерывным. Дискретный жест, такой как двойное касание, происходит, но один раз в мультисенсорной последовательности и приводит к единственному отправленному действию. Однако, когда устройство распознавания жеста интерпретирует непрерывный жест, такой как жест вращения, оно отправляет сообщение действия за каждым инкрементным изменением, пока не завершает мультисенсорная последовательность.
Окно поставляет сенсорные события устройству распознавания жеста, прежде чем оно поставит им протестированному на хит представлению, присоединенному к устройству распознавания жеста. Обычно, если устройство распознавания жеста анализирует поток касаний в мультисенсорной последовательности и не распознает ее жест, представление получает полное дополнение касаний. Если устройство распознавания жеста распознает свой жест, остающиеся касания для представления отменяются. Обычная последовательность действий в распознавании жеста следует за путем, определенным значениями по умолчанию cancelsTouchesInView, delaysTouchesBegan, delaysTouchesEnded свойства:
cancelsTouchesInView— Если устройство распознавания жеста распознает свой жест, оно развязывает остающиеся касания того жеста от их представления (таким образом, окно не поставит им). Окно отменяет ранее поставленные касания с (touchesCancelled:withEvent:) сообщение. Если устройство распознавания жеста не распознает свой жест, представление получает все касания в мультисенсорной последовательности.delaysTouchesBegan— Пока устройство распознавания жеста, при анализе сенсорных событий, не привело распознавание к сбою своего жеста, окно удерживает поставку сенсорных объектов вUITouchPhaseBeganфаза к присоединенному представлению. Если устройство распознавания жеста впоследствии распознает свой жест, представление не получает эти сенсорные объекты. Если устройство распознавания жеста не распознает свой жест, окно поставляет эти объекты в вызове представленияtouchesBegan:withEvent:метод (и возможно последующая обработка и анализtouchesMoved:withEvent:вызов для информирования его о касаниях текущее расположение).delaysTouchesEnded— Пока устройство распознавания жеста, при анализе сенсорных событий, не привело распознавание к сбою своего жеста, окно удерживает поставку сенсорных объектов вUITouchPhaseEndedфаза к присоединенному представлению. Если устройство распознавания жеста впоследствии распознает свой жест, касания отменяются (в atouchesCancelled:withEvent:сообщение). Если устройство распознавания жеста не распознает свой жест, окно поставляет эти объекты в вызове представленияtouchesEnded:withEvent:метод.
Обратите внимание на то, что "распознайте” в вышеупомянутых описаниях, не обязательно приравнивается к переходу к Распознанному состоянию.
Разделение на подклассы примечаний
Можно создать подкласс UIGestureRecognizer это распознает отличительный жест — например, жест «галочки». Если Вы собираетесь создать такое конкретное устройство распознавания жеста, несомненно, импортируют UIGestureRecognizerSubclass.h заголовочный файл. Этот заголовочный файл объявляет все методы и свойства, которые подкласс должен или переопределить, вызвать или сбросить.
Устройства распознавания жеста работают в предопределенном конечном автомате, переходя к последующим состояниям, поскольку они обрабатывают мультисенсорные события. Состояния и их возможные переходы отличаются для непрерывных и дискретных жестов. Все устройства распознавания жеста начинают мультисенсорную последовательность в Возможном состоянии (UIGestureRecognizerStatePossible). Дискретный переход жестов от Возможного до любого Признанного (UIGestureRecognizerStateRecognized) или Неработающий (UIGestureRecognizerStateFailed) в зависимости от того, интерпретируют ли они успешно жест или нет. Если переходы устройства распознавания жеста к Распознанному, это отправляет свое сообщение действия в его цель.
Для непрерывных жестов изменения состояния, которые могло бы сделать устройство распознавания жеста, являются более многочисленными, как обозначено в следующей схеме:
Возможный----> Начал----> [Измененный]----> Отмененный
Возможный----> Начал----> [Измененный]----> Законченный
Измененное состояние является дополнительным и может произойти многократно, прежде чем Отмененное или Законченное состояние достигнуто. Устройство распознавания жеста отправляет сообщения действия в каждом изменении состояния. Таким образом для непрерывного жеста, такого как повышение, сообщения действия отправляются, когда эти два пальца перемещаются к или далеко друг от друга. enum константы, представляющие эти состояния, имеют тип UIGestureRecognizerState. (Обратите внимание на то, что константы для Распознанных и Законченных состояний синонимичны.)
Подклассы должны установить state свойство к надлежащему значению, когда они переходят между состояниями.
Методы для переопределения
Методы, которые должны переопределить подклассы, описаны в Методах Для Подклассов. Подклассы должны также периодически сбрасывать state свойство (как описано выше) и может вызвать ignoreTouch:forEvent: метод.
Специальные замечания
state свойство объявляется в UIGestureRecognizer.h как являющийся только для чтения. Это объявление свойства предназначается для клиентов устройств распознавания жеста. Подклассы UIGestureRecognizer должен импортировать UIGestureRecognizerSubclass.h. Этот заголовочный файл содержит redeclaration state это делает его чтением-записью.
-
Инициализирует выделенный объект устройства распознавания жеста с целью и селектором действия.
Объявление
Swift
init(targettarget: AnyObject, actionaction: Selector)Objective C
- (instancetype)initWithTarget:(id)targetaction:(SEL)actionПараметры
targetОбъект, который является получателем сообщений действия, отправленных получателем, когда это распознает жест.
nilне допустимое значение.actionСелектор, идентифицирующий метод, реализованный к установленному сроку для обработки жеста, распознанного получателем. Селектор действия должен соответствовать подписи, описанной в обзоре класса.
NULLне допустимое значение.Возвращаемое значение
Инициализированный экземпляр бетона
UIGestureRecognizerподкласс илиnilесли ошибка произошла в попытке инициализировать объект.Обсуждение
Этот метод является определяемым инициализатором. После создания устройства распознавания жеста можно связать других пар целевого действия с ним путем вызова
addTarget:action:.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.2 и позже.
-
Добавляют цель и действие к объекту устройства распознавания жеста.
Объявление
Swift
func addTarget(_target: AnyObject, actionaction: Selector)Objective C
- (void)addTarget:(id)targetaction:(SEL)actionПараметры
targetОбъект, который является получателем сообщений действия, отправленных получателем, когда происходит представленный жест.
nilне допустимое значение.actionСелектор, идентифицирующий метод цели, которая будет вызвана сообщением действия.
NULLне допустимое значение.Обсуждение
Можно вызвать этот метод многократно для указания многократных пар целевого действия. Однако, если Вы запрашиваете добавить пару целевого действия, уже добавленную, тогда запрос проигнорирован.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.2 и позже.
-
Удаляет цель и действие от объекта устройства распознавания жеста.
Объявление
Swift
func removeTarget(_target: AnyObject?, actionaction: Selector)Objective C
- (void)removeTarget:(id)targetaction:(SEL)actionПараметры
targetОбъект, который в настоящее время является получателем сообщений действия, отправленных получателем, когда происходит представленный жест. Указать
nilесли Вы хотите удалить все цели из получателя.actionСелектор, идентифицирующий метод цели, которая будет вызвана сообщением действия. Указать
NULLесли Вы хотите удалить все действия из получателя.Обсуждение
Вызов этого метода удаляет указанную пару целевого действия. Передача
nilдляtargetсоответствия все цели и передачаNULLдляactionсоответствия все действия.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.2 и позже.
-
Возвращает точку, вычисленную как расположение в высказанном мнении жеста, представленного получателем.
Объявление
Параметры
viewA
UIViewобъект, на котором имел место жест. Указатьnilуказать окно.Возвращаемое значение
Точка в системе локальной координаты
viewэто идентифицирует расположение жеста. Еслиnilуказан дляview, метод возвращает расположение жеста в основной системе координат окна.Обсуждение
Возвращенное значение является универсальным расположением единственной точки для жеста, вычисленного платформой UIKit. Это обычно - центроид касаний, вовлеченных в жест. Для объектов
UISwipeGestureRecognizerиUITapGestureRecognizerклассы, расположение, возвращенное этим методом, имеют значение, особенное для жеста. Это значение документируется в ссылку для тех классов.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.2 и позже.
См. также
-
Возвращает расположение одного из касаний жеста в системе локальной координаты высказанного мнения.
Объявление
Objective C
- (CGPoint)locationOfTouch:(NSUInteger)touchIndexinView:(UIView *)viewПараметры
touchIndexИндекс a
UITouchобъект в частном массиве сохраняется получателем. Этот сенсорный объект представляет легкий текущий жест.viewA
UIViewобъект, на котором имел место жест. Указатьnilуказать окно.Возвращаемое значение
Точка в системе локальной координаты
viewэто идентифицирует расположение касания. Еслиnilуказан дляview, метод возвращает сенсорное расположение в основной системе координат окна.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.2 и позже.
См. также
-
Возвращает число касаний, вовлеченных в жест, представленный получателем.
Возвращаемое значение
Число
UITouchобъекты в частном массиве сохраняются получателем. Каждый из этих объектов представляет касание в текущем жесте.Обсуждение
Используя значение, возвращенное этим методом в цикле, можно попросить расположение отдельных касаний с помощью
locationOfTouch:inView:метод.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.2 и позже.
-
stateСвойствоТекущее состояние устройства распознавания жеста. (только для чтения)
Объявление
Swift
var state: UIGestureRecognizerState { get }Objective C
@property(nonatomic, readonly) UIGestureRecognizerState stateОбсуждение
Возможные состояния, в которых может быть устройство распознавания жеста, представлены константами типа
UIGestureRecognizerState. Некоторые из этих состояний не применимы к дискретным жестам. Версия только для чтенияstateсвойство предназначается для клиентов класса устройства распознавания жеста и не подклассов.Специальные замечания
Подклассы
UIGestureRecognizerдолжен использовать версию чтения-записи государственной собственности. Они получают этот redeclaration, когда они импортируютUIGestureRecognizerSubclass.hзаголовочный файл:@property(nonatomic,readwrite) UIGestureRecognizerState state;
Устройства распознавания для дискретного перехода жестов от
UIGestureRecognizerStatePossibleкUIGestureRecognizerStateFailedилиUIGestureRecognizerStateRecognized. Устройства распознавания для непрерывного перехода жеста отUIGestureRecognizerStatePossibleк этим фазам в данном порядке:UIGestureRecognizerStateBegan,UIGestureRecognizerStateChanged, иUIGestureRecognizerStateEnded. Если, однако, они получают касание отмены, они должны перейти кUIGestureRecognizerStateCancelled. Если устройства распознавания для непрерывных жестов не могут интерпретировать мультисенсорную последовательность как свой жест, они переходят кUIGestureRecognizerStateFailed.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.2 и позже.
-
viewСвойствоПредставление устройство распознавания жеста присоединено. (только для чтения)
Обсуждение
Вы присоединяете (или добавляете), устройство распознавания жеста к a
UIViewобъект с помощьюaddGestureRecognizer:метод.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.2 и позже.
-
enabledСвойствоБулево свойство, указывающее, включено ли устройство распознавания жеста.
Объявление
Swift
var enabled: BoolObjective C
@property(nonatomic, getter=isEnabled) BOOL enabledОбсуждение
Отключает жест устройства распознавания, таким образом, он не получает касания. Значение по умолчанию
YEStrue. Если Вы изменяете это свойство наNOfalseв то время как устройство распознавания жеста в настоящее время распознает жест, переходы устройства распознавания жеста к отмененному состоянию.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.2 и позже.
-
cancelsTouchesInViewСвойствоВлияние булева значения, поставлены ли касания представлению, когда распознан жест.
Объявление
Swift
var cancelsTouchesInView: BoolObjective C
@property(nonatomic) BOOL cancelsTouchesInViewОбсуждение
Когда это свойство
YEStrue(значение по умолчанию), и получатель распознает свой жест, находящиеся на рассмотрении касания того жеста не поставлены представлению и ранее поставлены, касания отменяются через atouchesCancelled:withEvent:сообщение отправило к представлению. Если значение этого свойства, если устройство распознавания жеста не распознает свой жест илиNOfalse, представление получает все касания в мультисенсорной последовательности.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.2 и позже.
См. также
-
delaysTouchesBeganСвойствоБулево значение, определяющее, ли задержки получателя, представляющие касания начать фаза к ее представлению.
Объявление
Swift
var delaysTouchesBegan: BoolObjective C
@property(nonatomic) BOOL delaysTouchesBeganОбсуждение
Когда значение этого свойства
NOfalse(значение по умолчанию), представления анализируют сенсорные события вUITouchPhaseBeganиUITouchPhaseMovedпараллельно с получателем. Когда значение свойстваYEStrue, окно приостанавливает поставку сенсорных объектов вUITouchPhaseBeganфаза к представлению. Если устройство распознавания жеста впоследствии распознает свой жест, эти сенсорные объекты отбрасываются. Если устройство распознавания жеста, однако, не распознает свой жест, окно поставляет эти объекты представлению в atouchesBegan:withEvent:сообщение (и возможно последующая обработка и анализtouchesMoved:withEvent:сообщение для информирования его о текущих расположениях касаний). Установите это свойство вYEStrueпрепятствовать тому, чтобы представления обработали любые касания вUITouchPhaseBeganфаза, которая может быть распознана как часть этого жеста.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.2 и позже.
См. также
-
delaysTouchesEndedСвойствоБулево значение, определяющее, ли задержки получателя, отправляющие касания в фазе конца к ее представлению.
Объявление
Swift
var delaysTouchesEnded: BoolObjective C
@property(nonatomic) BOOL delaysTouchesEndedОбсуждение
Когда значение этого свойства
YEStrue(значение по умолчанию), и получатель анализирует сенсорные события, окно приостанавливает поставку сенсорных объектов вUITouchPhaseEndedфаза к присоединенному представлению. Если устройство распознавания жеста впоследствии распознает свой жест, эти сенсорные объекты отменяются (через atouchesCancelled:withEvent:сообщение). Если устройство распознавания жеста не распознает свой жест, окно поставляет эти объекты в вызове представленияtouchesEnded:withEvent:метод. Установите это свойство вNOfalseиметь сенсорные объекты вUITouchPhaseEndedпоставленный представлению, в то время как устройство распознавания жеста анализирует те же касания.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.2 и позже.
См. также
-
Создает отношение зависимости между получателем и другим устройством распознавания жеста.
Объявление
Swift
func requireGestureRecognizerToFail(_otherGestureRecognizer: UIGestureRecognizer)Objective C
- (void)requireGestureRecognizerToFail:(UIGestureRecognizer *)otherGestureRecognizerПараметры
otherGestureRecognizerДругой объект устройства распознавания жеста (экземпляр подкласса UIGestureRecognizer).
Обсуждение
Этот метод создает отношение с другим устройством распознавания жеста, задерживающим переход получателя из
UIGestureRecognizerStatePossible. Состояние, что переходы получателя к зависят от того, что происходит сotherGestureRecognizer:Если
otherGestureRecognizerпереходы кUIGestureRecognizerStateFailed, переходы получателя к его нормальному следующему состоянию.если
otherGestureRecognizerпереходы кUIGestureRecognizerStateRecognizedилиUIGestureRecognizerStateBegan, переходы получателя кUIGestureRecognizerStateFailed.
Пример, где этот метод можно было бы вызвать, - когда Вы хотите жест единственного касания, требуют, чтобы жест двойного касания перестал работать.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.2 и позже.
-
delegateСвойствоДелегат устройства распознавания жеста.
Объявление
Swift
unowned(unsafe) var delegate: UIGestureRecognizerDelegate?Objective C
@property(nonatomic, assign) id< UIGestureRecognizerDelegate > delegateОбсуждение
Устройство распознавания жеста поддерживает слабую ссылку на своего делегата. Делегат должен принять
UIGestureRecognizerDelegateпротокол и реализация один или больше ее методов.Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.2 и позже.
UIGestureRecognizerSubclass.h заголовочный файл содержит расширение класса, объявляющее, что методы намеревались быть вызванными или переопределенными только подклассами UIGestureRecognizer. Клиенты, просто использующие конкретные подклассы UIGestureRecognizer никогда не должен вызывать эти методы (за исключением отмеченных).
-
Отправленный в получатель, когда один или несколько пальцев приземляются в связанном представлении.
Параметры
touchesРяд
UITouchэкземпляры, в конечном счете представленныеeventэто представляет касания вUITouchPhaseBeganфаза.eventA
UIEventобъект, представляющий событие, которому принадлежат касания.Обсуждение
Этот метод имеет ту же точную подпись как соответствующая, объявленная
UIResponder. Через этот метод устройство распознавания жеста получает сенсорные объекты (в ихUITouchPhaseBeganфаза), прежде чем представление, присоединенное к устройству распознавания жеста, получает их.UIGestureRecognizerобъекты не находятся в цепочке респондента, все же наблюдают касания, протестированные на хит к их представлению и подпредставлениям их представления. После наблюдения поставка сенсорных объектов к присоединенному представлению или их расположение иначе, затронутаcancelsTouchesInView,delaysTouchesBegan, иdelaysTouchesEndedсвойства.Если устройство распознавания жеста интерпретирует непрерывный жест, оно должно установить свое состояние в
UIGestureRecognizerStateBeganпосле получения этого сообщения. Если в какой-либо точке в ее обработке касания возражает, что устройство распознавания жеста решает, что мультисенсорная последовательность события не является своим жестом, это должно установить его состояние вUIGestureRecognizerStateCancelled.Многократные касания отключены по умолчанию. Для получения многократных сенсорных событий, необходимо установить a
multipleTouchEnabledсвойство присоединенного экземпляра представления кYEStrue.Оператор импорта
Objective C
@import UIKit;Доступность
Доступный в iOS 3.2 и позже.
-
Отправленный в получатель, когда один или несколько пальцев перемещаются в связанное представление.
Параметры
touchesРяд
UITouchэкземпляры, в конечном счете представленныеeventэто представляет касания вUITouchPhaseMovedфаза.eventA
UIEventобъект, представляющий событие, которому принадлежат касания.Обсуждение
Этот метод имеет ту же точную подпись как соответствующая, объявленная
UIResponder. Через этот метод устройство распознавания жеста получает сенсорные объекты (в ихUITouchPhaseMovedфаза), прежде чем представление, присоединенное к устройству распознавания жеста, получает их.UIGestureRecognizerобъекты не находятся в цепочке респондента, все же наблюдают касания, протестированные на хит к их представлению и подпредставлениям их представления. После наблюдения поставка сенсорных объектов к присоединенному представлению или их расположение иначе, затронутаcancelsTouchesInView,delaysTouchesBegan, иdelaysTouchesEndedсвойства.Если устройство распознавания жеста интерпретирует непрерывный жест, оно должно установить свое состояние в
UIGestureRecognizerStateChangedпосле получения этого сообщения. Если в какой-либо точке в ее обработке касания возражает, что устройство распознавания жеста решает, что мультисенсорная последовательность события не является своим жестом, это должно установить его состояние вUIGestureRecognizerStateCancelled.Многократные касания отключены по умолчанию. Для получения многократных сенсорных событий, необходимо установить a
multipleTouchEnabledсвойство присоединенного экземпляра представления кYEStrue.Оператор импорта
Objective C
@import UIKit;Доступность
Доступный в iOS 3.2 и позже.
-
Отправленный в получатель, когда один или несколько пальцев поднимаются со связанного представления.
Параметры
touchesРяд
UITouchэкземпляры, в конечном счете представленныеeventэто представляет касания вUITouchPhaseEndedфаза.eventA
UIEventобъект, представляющий событие, которому принадлежат касания.Обсуждение
Этот метод имеет ту же точную подпись как соответствующая, объявленная
UIResponder. Через этот метод устройство распознавания жеста получает сенсорные объекты (в ихUITouchPhaseEndedфаза), прежде чем представление, присоединенное к устройству распознавания жеста, получает их.UIGestureRecognizerобъекты не находятся в цепочке респондента, все же наблюдают касания, протестированные на хит к их представлению и подпредставлениям их представления. После наблюдения поставка сенсорных объектов к присоединенному представлению или их расположение иначе, затронутаcancelsTouchesInView,delaysTouchesBegan, иdelaysTouchesEndedсвойства.Если устройство распознавания жеста интерпретирует непрерывный жест, оно должно установить свое состояние в
UIGestureRecognizerStateEndedпосле получения этого сообщения. Если это интерпретирует дискретный жест, это должно установить свое состояние вUIGestureRecognizerStateRecognized. Если в какой-либо точке в ее обработке касания возражает, что устройство распознавания жеста решает, что мультисенсорная последовательность события не является своим жестом, это должно установить его состояние вUIGestureRecognizerStateCancelled.Многократные касания отключены по умолчанию. Для получения многократных сенсорных событий, необходимо установить a
multipleTouchEnabledсвойство присоединенного экземпляра представления кYEStrue.Оператор импорта
Objective C
@import UIKit;Доступность
Доступный в iOS 3.2 и позже.
-
Отправленный в получатель, когда системное событие (такое как низкая память, предупреждающая), отменяет сенсорное событие.
Параметры
touchesРяд
UITouchэкземпляры, в конечном счете представленныеeventэто представляет касания вUITouchPhaseCancelledфаза.eventA
UIEventобъект, представляющий событие, которому принадлежат касания.Обсуждение
Этот метод имеет ту же точную подпись как соответствующая, объявленная
UIResponder. Через этот метод устройство распознавания жеста получает сенсорные объекты (в ихUITouchPhaseCancelledфаза), прежде чем представление, присоединенное к устройству распознавания жеста, получает их.UIGestureRecognizerобъекты не находятся в цепочке респондента, все же наблюдают касания, протестированные на хит к их представлению и подпредставлениям их представления. После наблюдения поставка сенсорных объектов к присоединенному представлению или их расположение иначе, затронутаcancelsTouchesInView,delaysTouchesBegan, иdelaysTouchesEndedсвойства.После получения этого сообщения устройство распознавания жеста для непрерывного жеста должно установить свое состояние в
UIGestureRecognizerStateCancelled; устройство распознавания жеста для дискретного жеста должно установить свое состояние вUIGestureRecognizerStateFailed.Оператор импорта
Objective C
@import UIKit;Доступность
Доступный в iOS 3.2 и позже.
-
Переопределенный для сброса внутреннего состояния, когда завершается попытка распознавания жеста.
Объявление
Objective C
- (void)resetОбсуждение
Время выполнения вызывает этот метод после того, как состояние устройства распознавания жеста было установлено в
UIGestureRecognizerStateEnded,UIGestureRecognizerStateRecognized,UIGestureRecognizerStateCancelled, илиUIGestureRecognizerStateFailed— другими словами, любой терминал утверждает для попытки распознавания жеста. Подклассы должны сбросить любое внутреннее состояние в подготовке к новой попытке распознавания жеста. После того, как этот метод вызывают, устройство распознавания жеста не получает дальнейших обновлений для касаний, начавшихся, но не закончившихся.Оператор импорта
Objective C
@import UIKit;Доступность
Доступный в iOS 3.2 и позже.
См. также
-
Говорит устройству распознавания жеста игнорировать определенное касание данного события.
Параметры
touchA
UITouchобъект, который является частью текущей мультисенсорной последовательности и связанный сevent.eventA
UIEventобъект, включающий ссылку наtouch.Обсуждение
Если касание не является частью этого жеста, можно передать его этому методу, заставив его быть проигнорированными.
UIGestureRecognizerне отменяет проигнорированные касания к связанному представлению даже еслиcancelsTouchesInViewYEStrue. Этот метод предназначается, чтобы быть вызванным, не переопределенным.Оператор импорта
Objective C
@import UIKit;Доступность
Доступный в iOS 3.2 и позже.
-
Переопределенный, чтобы указать, что указанное устройство распознавания жеста может препятствовать тому, чтобы получатель распознал жест.
Объявление
Objective C
- (BOOL)canBePreventedByGestureRecognizer:(UIGestureRecognizer *)preventingGestureRecognizerПараметры
preventingGestureRecognizerЭкземпляр подкласса
UIGestureRecognizer.Возвращаемое значение
YEStrueуказать этоpreventingGestureRecognizerможет блокировать получатель от распознавания его жеста, иначеNOfalse.Обсуждение
Переопределение этих методов включает то же поведение как реализация
UIGestureRecognizerDelegateметодыgestureRecognizerShouldBegin:иgestureRecognizer:shouldReceiveTouch:. Однако путем переопределения их, подклассы могут определить правила предотвращения всего класса. Например, aUITapGestureRecognizerобъект никогда не предотвращает другогоUITapGestureRecognizerобъект с более высоким количеством касания.Оператор импорта
Objective C
@import UIKit;Доступность
Доступный в iOS 3.2 и позже.
См. также
-
Переопределенный, чтобы указать, что получатель может препятствовать тому, чтобы указанное устройство распознавания жеста распознало свой жест.
Объявление
Objective C
- (BOOL)canPreventGestureRecognizer:(UIGestureRecognizer *)preventedGestureRecognizerПараметры
preventedGestureRecognizerЭкземпляр подкласса
UIGestureRecognizer.Возвращаемое значение
YEStrueуказать, что получатель может блокироватьpreventedGestureRecognizerот распознавания его жеста, иначеNOfalse.Обсуждение
Переопределение этих методов включает то же поведение как реализация
UIGestureRecognizerDelegateметодыgestureRecognizerShouldBegin:иgestureRecognizer:shouldReceiveTouch:. Однако путем переопределения их, подклассы могут определить правила предотвращения всего класса. Например, aUITapGestureRecognizerобъект никогда не предотвращает другогоUITapGestureRecognizerобъект с более высоким количеством касания.Оператор импорта
Objective C
@import UIKit;Доступность
Доступный в iOS 3.2 и позже.
См. также
-
Переопределенный, чтобы указать, что получатель требует, чтобы указанное устройство распознавания жеста перестало работать.
Объявление
Objective C
- (BOOL)shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizerПараметры
otherGestureRecognizerЭкземпляр подкласса
UIGestureRecognizer.Возвращаемое значение
YEStrueустанавливать требование отказа; иначе,NOfalse.Обсуждение
Переопределение этого метода позволяет подклассу определять требование отказа всего класса.
Оператор импорта
Objective C
@import UIKit;Доступность
Доступный в iOS 7.0 и позже.
-
Переопределенный, чтобы указать, что получатель должен потребоваться, чтобы перестать работать указанным устройством распознавания жеста.
Объявление
Objective C
- (BOOL)shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizerПараметры
otherGestureRecognizerЭкземпляр подкласса
UIGestureRecognizer.Возвращаемое значение
YEStrueустанавливать требование отказа; иначе,NOfalse.Обсуждение
Переопределение этого метода позволяет подклассу определять требование отказа всего класса.
Оператор импорта
Objective C
@import UIKit;Доступность
Доступный в iOS 7.0 и позже.
Типы данных
-
Текущее состояние устройство распознавания жеста находится в.
Объявление
Swift
enum UIGestureRecognizerState : Int { case Possible case Began case Changed case Ended case Cancelled case Failed }Objective C
typedef enum { UIGestureRecognizerStatePossible, UIGestureRecognizerStateBegan, UIGestureRecognizerStateChanged, UIGestureRecognizerStateEnded, UIGestureRecognizerStateCancelled, UIGestureRecognizerStateFailed, UIGestureRecognizerStateRecognized = UIGestureRecognizerStateEnded } UIGestureRecognizerState;Константы
-
PossibleUIGestureRecognizerStatePossibleУстройство распознавания жеста еще не распознало свой жест, но может оценивать сенсорные события. Это - состояние по умолчанию.
Доступный в iOS 3.2 и позже.
-
BeganUIGestureRecognizerStateBeganУстройство распознавания жеста получило сенсорные объекты, распознанные как непрерывный жест. Это отправляет свое сообщение действия (или сообщения) в следующем цикле цикла выполнения.
Доступный в iOS 3.2 и позже.
-
ChangedUIGestureRecognizerStateChangedУстройство распознавания жеста получило касания, распознанные как изменение в непрерывном жесте. Это отправляет свое сообщение действия (или сообщения) в следующем цикле цикла выполнения.
Доступный в iOS 3.2 и позже.
-
EndedUIGestureRecognizerStateEndedУстройство распознавания жеста получило касания, распознанные как конец непрерывного жеста. Это отправляет свое сообщение действия (или сообщения) в следующем цикле цикла выполнения и сбрасывает его состояние к
UIGestureRecognizerStatePossible.Доступный в iOS 3.2 и позже.
-
CancelledUIGestureRecognizerStateCancelledУстройство распознавания жеста получило касания, приводящие к отмене непрерывного жеста. Это отправляет свое сообщение действия (или сообщения) в следующем цикле цикла выполнения и сбрасывает его состояние к
UIGestureRecognizerStatePossible.Доступный в iOS 3.2 и позже.
-
FailedUIGestureRecognizerStateFailedУстройство распознавания жеста получило мультисенсорную последовательность, которую оно не может распознать как ее жест. Никакое сообщение действия не отправляется, и устройство распознавания жеста сбрасывается к
UIGestureRecognizerStatePossible.Доступный в iOS 3.2 и позже.
-
UIGestureRecognizerStateRecognizedУстройство распознавания жеста получило мультисенсорную последовательность, которую оно распознает как ее жест. Это отправляет свое сообщение действия (или сообщения) в следующем цикле цикла выполнения и сбрасывает его состояние к
UIGestureRecognizerStatePossible.Доступный в iOS 3.2 и позже.
Обсуждение
Устройства распознавания жеста распознают дискретное событие, такое как касание или сильно ударение, но не сообщают об изменениях в жесте. Другими словами, дискретные жесты не переходят посредством Начинания и Измененных состояний, и они не могут перестать работать или быть отменены.
Оператор импорта
Objective C
@import UIKit;Swift
import UIKitДоступность
Доступный в iOS 3.2 и позже.
-
