Нативная разработка мобильных приложений



Download 3,69 Mb.
Pdf ko'rish
bet61/228
Sana21.07.2022
Hajmi3,69 Mb.
#834838
1   ...   57   58   59   60   61   62   63   64   ...   228
Bog'liq
Нативная разработка мобильных приложений

Обработка сложных жестов
Распознаватели жестов отлично справляются с простыми жестами, выполня
-
емыми одним пальцем. Но их также с успехом можно использовать для реа
-
лизации сложных цепочек взаимодействий. Рассмотрим следующий пример:
let doubleTapRecognizer = UITapGestureRecognizer(target: self,
action: #selector(handleTap(_:)))
doubleTapRecognizer.numberOfTapsRequired = 2
Этот код напоминает наш предыдущий пример распознавателя одного каса
-
ния. Однако, просто изменив значение одного свойства, мы смогли превратить 
его в распознаватель касания двумя пальцами.


88

Пользовательский ввод
В UIKit есть также другие встроенные распознаватели жестов. Если вам по
-
надобится распознать жест панорамирования тремя пальцами, его можно соз
-
дать, как показано ниже:
let panGestureRecognizer = UIPanGestureRecognizer(target: self,
action: #selector(handlePan(_:)))
panGestureRecognizer.minimumNumberOfTouches = 3
Или, если вы решите определить физически сложно осуществимый жест, вот 
вам пример пятипальцевого жеста тройного касания:
let fiveFingerTapRecognizer = UITapGestureRecognizer(target: self,
action: #selector(handleTap(_:)))
fiveFingerTapRecognizer.numberOfTapsRequired = 3
fiveFingerTapRecognizer.numberOfTouchesRequired = 5
Вы едва ли будете часто встречать нечто подобное в приложениях. Однако 
все сенсорные интерфейсы имеют общую проблему: в одном представлении 
часто требуется обрабатывать несколько сенсорных событий. Но как обрабо
-
тать жесты одиночного и двойного касания без риска случайно запустить сна
-
чала обработчик одиночного касания? Вот как может выглядеть такая реали
-
зация:
// Создать распознаватель двойного касания
let doubleTapRecognizer = UITapGestureRecognizer(target: self,
action: #selector(handleTap(_:)))
doubleTapRecognizer.numberOfTapsRequired = 2
// Создать распознаватель одного касания
let singleTapRecognizer = UITapGestureRecognizer(target: self,
action: #selector(handleTap(_:)))
singleTapRecognizer.numberOfTapsRequired = 1
singleTapRecognizer.require(toFail: doubleTapRecognizer)
Здесь сначала создается распознаватель 
doubleTapRecognizer
жестов двойного 
касания. В свойство 
numberOfTapRequired
распознавателя записывается значе
-
ние 
2
. Затем создается распознаватель 
singleTapRecognizer
жестов одиночного 
касания. Количество касаний устанавливается равным 
1
, а затем вызывается 
отдельный метод 
require(toFail:)
, которому передается распознаватель жестов 
двойного касания, созданный ранее.
Метод 
require(toFail:)
имеется во всех распознавателях жестов и позволяет 
им запускаться только в случае отказа другого распознавателя. Такое связыва
-
ние распознавателей позволяет распознавателю одиночного касания дождать
-
ся, когда распознаватель двойного касания потерпит неудачу, и только потом 
вызвать свой обработчик. Без подобной связи, когда пользователь выполнит 
жест двойного касания, после первого касания сработает распознаватель оди
-
ночного касания, а после второго – распознаватель двойного касания.
Это позволяет увидеть, как можно связать несколько составных жестов 
и придать им определенные приоритеты выполнения. Количество комбинаций 
распознавателей жестов, которые можно создать, фактически бесконечно; од
-
нако их перечисление выходит за рамки этой книги, но если вам интересно, об
-
ращайтесь к описанию 
U
IGestureRecognizer
в документации для разработчиков.


Что мы узнали 


Download 3,69 Mb.

Do'stlaringiz bilan baham:
1   ...   57   58   59   60   61   62   63   64   ...   228




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish