Определение жеста "галочка"
Определяя новые жесты для своих приложений, тщательно проверяйте их, а если сможете, предоставьте другим возможность проверить их. Вы должны убедиться в том, что подобные жесты нетрудно будет совершать пользователям вашего приложения, но не настолько, чтобы они инициировались непреднамеренно. Кроме того, вы должны убедиться в том, что эти особые жесты не вступают в противоречие с другими жестами, применяемыми в вашем приложении. Например, одиночный жест не должен считаться и специальным, и щипковым.
Рассмотрим в качестве примера определение жеста в виде галочки.
Какие же свойства определяют этот жест в виде галочки? Самое главное из них, пожалуй, резкое изменение угла между двумя линиями. Кроме того, мы должны убедиться в том, что палец пользователя переместился по прямой линии на небольшое расстояние, прежде чем сделать столь острый угол. На отрезки линий галочки сходятся под острым углом меньше 90°. Но получить жест точно под углом 85° будет очень трудно, поэтому нам придется определить допустимые пределы изменения углов.
Итак, создайте новый проект в среде Xcode, используя шаблон View-based Application. Присвойте новому проекту имя CheckPlease. В этом проекте нам придется воспользоваться самым простым аппаратом аналитической геометрии для расчета таких величин, как расстояние между двумя точками и угол между двумя линиями. Если вы не помните геометрию, не отчаивайтесь. Мы воспользуемся специальными функциями, которые сделают все необходимые расчеты за Вас.
Найдите в CheckPlease два файла, CGPointUtils. h и CGPointUtils. с, и перетащите их в папку Other Sources своего проекта. Содержащимися в них служебными функциями можете свободно пользоваться в своих приложениях.
Нажмите клавишу Ctrl, щелкните на папке Classes и введите в проект новый файл. Воспользуйтесь новым файловым помощником для создания нового класса на языке Objective-C. (Сделайте его пока что подклассом класса NSObject, поскольку файловый помощник не позволяет создавать подкласс класса UIGestureRecognizer.)
Присвойте этому файлу имя CheckMarkRecognizer .га, запросите создание соответствующего заголовочного файла и сохраните этот исходный файл в папке Classes. Затем выберите заголовочный файл CheckMarkRecognizer .h и внесите в него свои изменения.
- Дата: 20-01-2015, 12:59