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(target
target
: AnyObject, actionaction
: Selector)Objective C
- (instancetype)initWithTarget:(id)
target
action:(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)
target
action:(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)
target
action:(SEL)action
Параметры
target
Объект, который в настоящее время является получателем сообщений действия, отправленных получателем, когда происходит представленный жест. Указать
nil
если Вы хотите удалить все цели из получателя.action
Селектор, идентифицирующий метод цели, которая будет вызвана сообщением действия. Указать
NULL
если Вы хотите удалить все действия из получателя.Обсуждение
Вызов этого метода удаляет указанную пару целевого действия. Передача
nil
дляtarget
соответствия все цели и передачаNULL
дляaction
соответствия все действия.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 3.2 и позже.
-
Возвращает точку, вычисленную как расположение в высказанном мнении жеста, представленного получателем.
Объявление
Параметры
view
A
UIView
объект, на котором имел место жест. Указатьnil
указать окно.Возвращаемое значение
Точка в системе локальной координаты
view
это идентифицирует расположение жеста. Еслиnil
указан дляview
, метод возвращает расположение жеста в основной системе координат окна.Обсуждение
Возвращенное значение является универсальным расположением единственной точки для жеста, вычисленного платформой UIKit. Это обычно - центроид касаний, вовлеченных в жест. Для объектов
UISwipeGestureRecognizer
иUITapGestureRecognizer
классы, расположение, возвращенное этим методом, имеют значение, особенное для жеста. Это значение документируется в ссылку для тех классов.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 3.2 и позже.
См. также
-
Возвращает расположение одного из касаний жеста в системе локальной координаты высказанного мнения.
Объявление
Objective C
- (CGPoint)locationOfTouch:(NSUInteger)
touchIndex
inView:(UIView *)view
Параметры
touchIndex
Индекс a
UITouch
объект в частном массиве сохраняется получателем. Этот сенсорный объект представляет легкий текущий жест.view
A
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: Bool
Objective C
@property(nonatomic, getter=isEnabled) BOOL enabled
Обсуждение
Отключает жест устройства распознавания, таким образом, он не получает касания. Значение по умолчанию
YES
true
. Если Вы изменяете это свойство наNO
false
в то время как устройство распознавания жеста в настоящее время распознает жест, переходы устройства распознавания жеста к отмененному состоянию.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 3.2 и позже.
-
cancelsTouchesInView
СвойствоВлияние булева значения, поставлены ли касания представлению, когда распознан жест.
Объявление
Swift
var cancelsTouchesInView: Bool
Objective C
@property(nonatomic) BOOL cancelsTouchesInView
Обсуждение
Когда это свойство
YES
true
(значение по умолчанию), и получатель распознает свой жест, находящиеся на рассмотрении касания того жеста не поставлены представлению и ранее поставлены, касания отменяются через atouchesCancelled:withEvent:
сообщение отправило к представлению. Если значение этого свойства, если устройство распознавания жеста не распознает свой жест илиNO
false
, представление получает все касания в мультисенсорной последовательности.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 3.2 и позже.
См. также
-
delaysTouchesBegan
СвойствоБулево значение, определяющее, ли задержки получателя, представляющие касания начать фаза к ее представлению.
Объявление
Swift
var delaysTouchesBegan: Bool
Objective C
@property(nonatomic) BOOL delaysTouchesBegan
Обсуждение
Когда значение этого свойства
NO
false
(значение по умолчанию), представления анализируют сенсорные события вUITouchPhaseBegan
иUITouchPhaseMoved
параллельно с получателем. Когда значение свойстваYES
true
, окно приостанавливает поставку сенсорных объектов вUITouchPhaseBegan
фаза к представлению. Если устройство распознавания жеста впоследствии распознает свой жест, эти сенсорные объекты отбрасываются. Если устройство распознавания жеста, однако, не распознает свой жест, окно поставляет эти объекты представлению в atouchesBegan:withEvent:
сообщение (и возможно последующая обработка и анализtouchesMoved:withEvent:
сообщение для информирования его о текущих расположениях касаний). Установите это свойство вYES
true
препятствовать тому, чтобы представления обработали любые касания вUITouchPhaseBegan
фаза, которая может быть распознана как часть этого жеста.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 3.2 и позже.
См. также
-
delaysTouchesEnded
СвойствоБулево значение, определяющее, ли задержки получателя, отправляющие касания в фазе конца к ее представлению.
Объявление
Swift
var delaysTouchesEnded: Bool
Objective C
@property(nonatomic) BOOL delaysTouchesEnded
Обсуждение
Когда значение этого свойства
YES
true
(значение по умолчанию), и получатель анализирует сенсорные события, окно приостанавливает поставку сенсорных объектов вUITouchPhaseEnded
фаза к присоединенному представлению. Если устройство распознавания жеста впоследствии распознает свой жест, эти сенсорные объекты отменяются (через atouchesCancelled:withEvent:
сообщение). Если устройство распознавания жеста не распознает свой жест, окно поставляет эти объекты в вызове представленияtouchesEnded:withEvent:
метод. Установите это свойство вNO
false
иметь сенсорные объекты в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
фаза.event
A
UIEvent
объект, представляющий событие, которому принадлежат касания.Обсуждение
Этот метод имеет ту же точную подпись как соответствующая, объявленная
UIResponder
. Через этот метод устройство распознавания жеста получает сенсорные объекты (в ихUITouchPhaseBegan
фаза), прежде чем представление, присоединенное к устройству распознавания жеста, получает их.UIGestureRecognizer
объекты не находятся в цепочке респондента, все же наблюдают касания, протестированные на хит к их представлению и подпредставлениям их представления. После наблюдения поставка сенсорных объектов к присоединенному представлению или их расположение иначе, затронутаcancelsTouchesInView
,delaysTouchesBegan
, иdelaysTouchesEnded
свойства.Если устройство распознавания жеста интерпретирует непрерывный жест, оно должно установить свое состояние в
UIGestureRecognizerStateBegan
после получения этого сообщения. Если в какой-либо точке в ее обработке касания возражает, что устройство распознавания жеста решает, что мультисенсорная последовательность события не является своим жестом, это должно установить его состояние вUIGestureRecognizerStateCancelled
.Многократные касания отключены по умолчанию. Для получения многократных сенсорных событий, необходимо установить a
multipleTouchEnabled
свойство присоединенного экземпляра представления кYES
true
.Оператор импорта
Objective C
@import UIKit;
Доступность
Доступный в iOS 3.2 и позже.
-
Отправленный в получатель, когда один или несколько пальцев перемещаются в связанное представление.
Параметры
touches
Ряд
UITouch
экземпляры, в конечном счете представленныеevent
это представляет касания вUITouchPhaseMoved
фаза.event
A
UIEvent
объект, представляющий событие, которому принадлежат касания.Обсуждение
Этот метод имеет ту же точную подпись как соответствующая, объявленная
UIResponder
. Через этот метод устройство распознавания жеста получает сенсорные объекты (в ихUITouchPhaseMoved
фаза), прежде чем представление, присоединенное к устройству распознавания жеста, получает их.UIGestureRecognizer
объекты не находятся в цепочке респондента, все же наблюдают касания, протестированные на хит к их представлению и подпредставлениям их представления. После наблюдения поставка сенсорных объектов к присоединенному представлению или их расположение иначе, затронутаcancelsTouchesInView
,delaysTouchesBegan
, иdelaysTouchesEnded
свойства.Если устройство распознавания жеста интерпретирует непрерывный жест, оно должно установить свое состояние в
UIGestureRecognizerStateChanged
после получения этого сообщения. Если в какой-либо точке в ее обработке касания возражает, что устройство распознавания жеста решает, что мультисенсорная последовательность события не является своим жестом, это должно установить его состояние вUIGestureRecognizerStateCancelled
.Многократные касания отключены по умолчанию. Для получения многократных сенсорных событий, необходимо установить a
multipleTouchEnabled
свойство присоединенного экземпляра представления кYES
true
.Оператор импорта
Objective C
@import UIKit;
Доступность
Доступный в iOS 3.2 и позже.
-
Отправленный в получатель, когда один или несколько пальцев поднимаются со связанного представления.
Параметры
touches
Ряд
UITouch
экземпляры, в конечном счете представленныеevent
это представляет касания вUITouchPhaseEnded
фаза.event
A
UIEvent
объект, представляющий событие, которому принадлежат касания.Обсуждение
Этот метод имеет ту же точную подпись как соответствующая, объявленная
UIResponder
. Через этот метод устройство распознавания жеста получает сенсорные объекты (в ихUITouchPhaseEnded
фаза), прежде чем представление, присоединенное к устройству распознавания жеста, получает их.UIGestureRecognizer
объекты не находятся в цепочке респондента, все же наблюдают касания, протестированные на хит к их представлению и подпредставлениям их представления. После наблюдения поставка сенсорных объектов к присоединенному представлению или их расположение иначе, затронутаcancelsTouchesInView
,delaysTouchesBegan
, иdelaysTouchesEnded
свойства.Если устройство распознавания жеста интерпретирует непрерывный жест, оно должно установить свое состояние в
UIGestureRecognizerStateEnded
после получения этого сообщения. Если это интерпретирует дискретный жест, это должно установить свое состояние вUIGestureRecognizerStateRecognized
. Если в какой-либо точке в ее обработке касания возражает, что устройство распознавания жеста решает, что мультисенсорная последовательность события не является своим жестом, это должно установить его состояние вUIGestureRecognizerStateCancelled
.Многократные касания отключены по умолчанию. Для получения многократных сенсорных событий, необходимо установить a
multipleTouchEnabled
свойство присоединенного экземпляра представления кYES
true
.Оператор импорта
Objective C
@import UIKit;
Доступность
Доступный в iOS 3.2 и позже.
-
Отправленный в получатель, когда системное событие (такое как низкая память, предупреждающая), отменяет сенсорное событие.
Параметры
touches
Ряд
UITouch
экземпляры, в конечном счете представленныеevent
это представляет касания вUITouchPhaseCancelled
фаза.event
A
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 и позже.
См. также
-
Говорит устройству распознавания жеста игнорировать определенное касание данного события.
Параметры
touch
A
UITouch
объект, который является частью текущей мультисенсорной последовательности и связанный сevent
.event
A
UIEvent
объект, включающий ссылку наtouch
.Обсуждение
Если касание не является частью этого жеста, можно передать его этому методу, заставив его быть проигнорированными.
UIGestureRecognizer
не отменяет проигнорированные касания к связанному представлению даже еслиcancelsTouchesInView
YES
true
. Этот метод предназначается, чтобы быть вызванным, не переопределенным.Оператор импорта
Objective C
@import UIKit;
Доступность
Доступный в iOS 3.2 и позже.
-
Переопределенный, чтобы указать, что указанное устройство распознавания жеста может препятствовать тому, чтобы получатель распознал жест.
Объявление
Objective C
- (BOOL)canBePreventedByGestureRecognizer:(UIGestureRecognizer *)
preventingGestureRecognizer
Параметры
preventingGestureRecognizer
Экземпляр подкласса
UIGestureRecognizer
.Возвращаемое значение
YES
true
указать этоpreventingGestureRecognizer
может блокировать получатель от распознавания его жеста, иначеNO
false
.Обсуждение
Переопределение этих методов включает то же поведение как реализация
UIGestureRecognizerDelegate
методыgestureRecognizerShouldBegin:
иgestureRecognizer:shouldReceiveTouch:
. Однако путем переопределения их, подклассы могут определить правила предотвращения всего класса. Например, aUITapGestureRecognizer
объект никогда не предотвращает другогоUITapGestureRecognizer
объект с более высоким количеством касания.Оператор импорта
Objective C
@import UIKit;
Доступность
Доступный в iOS 3.2 и позже.
См. также
-
Переопределенный, чтобы указать, что получатель может препятствовать тому, чтобы указанное устройство распознавания жеста распознало свой жест.
Объявление
Objective C
- (BOOL)canPreventGestureRecognizer:(UIGestureRecognizer *)
preventedGestureRecognizer
Параметры
preventedGestureRecognizer
Экземпляр подкласса
UIGestureRecognizer
.Возвращаемое значение
YES
true
указать, что получатель может блокироватьpreventedGestureRecognizer
от распознавания его жеста, иначеNO
false
.Обсуждение
Переопределение этих методов включает то же поведение как реализация
UIGestureRecognizerDelegate
методыgestureRecognizerShouldBegin:
иgestureRecognizer:shouldReceiveTouch:
. Однако путем переопределения их, подклассы могут определить правила предотвращения всего класса. Например, aUITapGestureRecognizer
объект никогда не предотвращает другогоUITapGestureRecognizer
объект с более высоким количеством касания.Оператор импорта
Objective C
@import UIKit;
Доступность
Доступный в iOS 3.2 и позже.
См. также
-
Переопределенный, чтобы указать, что получатель требует, чтобы указанное устройство распознавания жеста перестало работать.
Объявление
Objective C
- (BOOL)shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer *)
otherGestureRecognizer
Параметры
otherGestureRecognizer
Экземпляр подкласса
UIGestureRecognizer
.Возвращаемое значение
YES
true
устанавливать требование отказа; иначе,NO
false
.Обсуждение
Переопределение этого метода позволяет подклассу определять требование отказа всего класса.
Оператор импорта
Objective C
@import UIKit;
Доступность
Доступный в iOS 7.0 и позже.
-
Переопределенный, чтобы указать, что получатель должен потребоваться, чтобы перестать работать указанным устройством распознавания жеста.
Объявление
Objective C
- (BOOL)shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)
otherGestureRecognizer
Параметры
otherGestureRecognizer
Экземпляр подкласса
UIGestureRecognizer
.Возвращаемое значение
YES
true
устанавливать требование отказа; иначе,NO
false
.Обсуждение
Переопределение этого метода позволяет подклассу определять требование отказа всего класса.
Оператор импорта
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;
Константы
-
Possible
UIGestureRecognizerStatePossible
Устройство распознавания жеста еще не распознало свой жест, но может оценивать сенсорные события. Это - состояние по умолчанию.
Доступный в iOS 3.2 и позже.
-
Began
UIGestureRecognizerStateBegan
Устройство распознавания жеста получило сенсорные объекты, распознанные как непрерывный жест. Это отправляет свое сообщение действия (или сообщения) в следующем цикле цикла выполнения.
Доступный в iOS 3.2 и позже.
-
Changed
UIGestureRecognizerStateChanged
Устройство распознавания жеста получило касания, распознанные как изменение в непрерывном жесте. Это отправляет свое сообщение действия (или сообщения) в следующем цикле цикла выполнения.
Доступный в iOS 3.2 и позже.
-
Ended
UIGestureRecognizerStateEnded
Устройство распознавания жеста получило касания, распознанные как конец непрерывного жеста. Это отправляет свое сообщение действия (или сообщения) в следующем цикле цикла выполнения и сбрасывает его состояние к
UIGestureRecognizerStatePossible
.Доступный в iOS 3.2 и позже.
-
Cancelled
UIGestureRecognizerStateCancelled
Устройство распознавания жеста получило касания, приводящие к отмене непрерывного жеста. Это отправляет свое сообщение действия (или сообщения) в следующем цикле цикла выполнения и сбрасывает его состояние к
UIGestureRecognizerStatePossible
.Доступный в iOS 3.2 и позже.
-
Failed
UIGestureRecognizerStateFailed
Устройство распознавания жеста получило мультисенсорную последовательность, которую оно не может распознать как ее жест. Никакое сообщение действия не отправляется, и устройство распознавания жеста сбрасывается к
UIGestureRecognizerStatePossible
.Доступный в iOS 3.2 и позже.
-
UIGestureRecognizerStateRecognized
Устройство распознавания жеста получило мультисенсорную последовательность, которую оно распознает как ее жест. Это отправляет свое сообщение действия (или сообщения) в следующем цикле цикла выполнения и сбрасывает его состояние к
UIGestureRecognizerStatePossible
.Доступный в iOS 3.2 и позже.
Обсуждение
Устройства распознавания жеста распознают дискретное событие, такое как касание или сильно ударение, но не сообщают об изменениях в жесте. Другими словами, дискретные жесты не переходят посредством Начинания и Измененных состояний, и они не могут перестать работать или быть отменены.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 3.2 и позже.
-