О Событиях в iOS
Пользователи управляют своими устройствами на iOS многими способами, такими как касание экрана или сотрясение устройства. iOS интерпретирует, когда и как пользователь управляет аппаратными средствами и передает эту информацию Вашему приложению. Чем больше Вашего приложения реагирует на действия естественными и интуитивными способами, тем более востребованный опыт для пользователя.
Сразу
События являются объектами, отправленными в приложение для информирования его о пользовательских действиях. В iOS события могут принять много форм: мультисенсорные события, события движения и события для управления мультимедиа. Этот последний тип события известен как событие дистанционного управления, потому что это может произойти из внешнего аксессуара.
UIKit упрощает для Вашего приложения обнаруживать жесты
приложения для iOS распознают комбинации касаний и реагируют на них способами, которые интуитивны пользователям, таковы как увеличивание масштаб содержания в ответ на жест зажимания и просмотр содержания в ответ на щелканье жестом. Фактически, некоторые жесты так распространены, что они встроены к UIKit. Например, UIControl
подклассы, такой как UIButton
и UISlider
, реагируйте на определенные жесты — касание для кнопки и перетаскивание для ползунка. Когда Вы конфигурируете эти средства управления, они отправляют сообщение действия в целевой объект, когда происходит то касание. Можно также использовать механизм целевого действия в представлениях при помощи устройств распознавания жеста. При присоединении устройства распознавания жеста к представлению всем действиям представления как управление — отвечающий на любой жест Вы указываете.
Устройства распознавания жеста обеспечивают высокоуровневую абстракцию для сложной логики обработки событий. Устройства распознавания жеста являются предпочтительным способом реализовать сенсорную обработку событий в Вашем приложении, потому что устройства распознавания жеста являются мощными, допускающими повторное использование, и адаптируемыми. Можно использовать одно из встроенных устройств распознавания жеста и настроить его поведение. Или можно создать собственное устройство распознавания жеста для распознавания нового жеста.
Событие перемещается вдоль определенного пути, ища объект обработать его
Когда iOS распознает событие, оно передает событие начальному объекту, кажущемуся самым важным для обработки того события, такого как представление, где произошло касание. Если начальный объект не может обработать событие, iOS продолжает передавать событие объектам с большим объемом, пока это не находит, что объект с достаточным количеством контекста обрабатывает событие. Эта последовательность объектов известна как цепочка респондента, и поскольку iOS передает события вдоль цепочки, она также передает ответственность ответа на событие. Этот шаблон разработки делает обработку событий совместной и динамичной.
UIEvent инкапсулирует касание, движение встряски или событие дистанционного управления
Много событий являются экземплярами UIKit UIEvent
класс. A UIEvent
объект содержит информацию о событии, что Ваше использование приложения, чтобы решить, как реагировать на событие. Поскольку пользовательское действие происходит — например, поскольку пальцы касаются экрана и преодолевают его поверхность — iOS постоянно отправляет объекты-события в приложение для обработки. Каждый объект-событие имеет тип — касание, «встряхивая» движение или дистанционное управление — и подтип.
Когда пользователи касаются его представлений, приложение получает мультисенсорные события
В зависимости от Вашего приложения средства управления UIKit и устройства распознавания жеста могли бы быть достаточными для всей сенсорной обработки событий Вашего приложения. Даже если Ваше приложение имеет пользовательские представления, можно использовать устройства распознавания жеста. Как показывает опыт, когда ответ Вашего приложения на касание сильно связывается с самим представлением, таким как рисование от касания, Вы пишете свою собственную сенсорную обработку событий. В этих случаях Вы ответственны за низкоуровневую обработку событий. Вы реализуете сенсорные методы, и в этих методах, Вы анализируете необработанные сенсорные события и отвечаете соответственно.
Когда пользователи перемещают свои устройства, приложение получает события движения
События движения предоставляют информацию о расположении устройства, ориентации и перемещении. Путем реакции на события движения можно добавить тонкий, все же мощные опции к приложению. Акселерометр и данные гироскопа позволяют Вам обнаруживать наклон, вращение и сотрясение.
События движения прибывают в различные формы, и можно обработать их использующий различные платформы. Когда пользователи встряхивают устройство, UIKit поставляет a UIEvent
возразите против приложения. Если Вы хотите, чтобы Ваше приложение получило высокий показатель, непрерывный акселерометр и данные гироскопа, используйте Базовую платформу Движения.
Когда пользователи управляют мультимедийными средствами управления, приложение получает события дистанционного управления
средства управления iOS и внешние аксессуары отправляют события дистанционного управления в приложение. Эти события позволяют пользователям управлять аудио и видео, таким как корректировка объема через гарнитуру. Обработайте мультимедийные события дистанционного управления для создания приложения быстро реагирующим к этим типам команд.
Предпосылки
Этот документ предполагает, что Вы знакомы с:
Фундаментальные понятия разработки приложения для iOS
Различные аспекты создания пользовательского интерфейса Вашего приложения
Как представления и работа контроллеров представления, и как настроить их
Если Вы не знакомы с теми понятиями, запустите путем чтения, Начинают Разрабатывать приложения для iOS Сегодня. Затем убедиться считать или Руководство по программированию Представления для iOS или Руководство по программированию Контроллера Представления для iOS или обоих.
См. также
Таким же образом то, что устройства на iOS обеспечивают касание и данные движения устройства, большинство устройств на iOS имеет GPS и замышляет аппаратные средства, генерирующие низкоуровневые данные, которыми могло бы интересоваться Ваше приложение. Руководство по программированию расположения и Карт обсуждает, как получить и обработать данные расположения.
Для усовершенствованных методов устройства распознавания жеста, таких как сглаживание кривой и применение фильтра низких частот, см. 2012 WWDC: Создание Усовершенствованных Устройств распознавания Жеста.
Много проектов примера кода в Ссылочной Библиотеке iOS имеют код, использующий устройства распознавания жеста и обрабатывающий события. Среди них следующие проекты:
Простые Устройства распознавания Жеста являются совершенной начальной точкой для понимания распознавания жеста. Это приложение демонстрирует, как распознать касание, сильно ударить и повернуть жесты. Приложение реагирует на каждый жест путем отображения и анимации изображения в сенсорном расположении.
Обработка Касаний Используя Методы Респондента и Устройства распознавания Жеста включает два проекта, демонстрирующие, как обработать многократные касания для перетаскивания квадратов вокруг на экране. Одна версия использует устройства распознавания жеста и другое использование пользовательские методы сенсорной обработки событий. Последняя версия особенно полезна для понимания сенсорных фаз, потому что это выводит на экран текущую сенсорную фазу на экране, поскольку происходят касания.
MoveMe показывает, как анимировать представление в ответ на сенсорные события. Исследуйте этот демонстрационный проект к далее своему пониманию пользовательской сенсорной обработки событий.