Создание и применение специальных жестов
Сохраните nib-файл, вернитесь обратно в Xcode к исходному файлу PinchMeView Controller .m.
В методе viewDidLoad мы устанавливаем распознаватель щипковых жестов и предписываем ему уведомлять нас через метод doPinch, когда происходит щипок. В методе doPinch мы анализируем состояние щипка. Если он только начинается, мы сохраняем текущий размер шрифта для последующего применения. Если он уже совершается, используем сохраненный первоначальный размер шрифта и текущий масштаб щипка для расчета нового размера шрифта.
Вот, собственно, и весь алгоритм обнаружения щипка. Скомпилируйте и запустите на выполнение рассматриваемое здесь приложение, чтобы опробовать его. Совершая щипок, обратите внимание на изменение размера текста в ответ на этот жест. Если вы пользуетесь имитатором, имейте в виду, что для имитации щипка можно нажать клавишу Alt, щелкнуть и перетащить курсор мыши в окне имитатора.
Ранее было показано, как обнаруживаются жесты, наиболее часто применяемые в устройстве iPhone. Но самое интересное начинается с того момента, когда вы приступаете к определению своих собственных жестов! Теперь, когда вы уже знаете, как пользоваться несколькими подклассами класса UIGestureRecognizer, пора научиться создавать собственные жесты, которые можно легко присоединять к какому угодно представлению.
Определить специальный жест не так-то просто. Вы уже овладели основным механизмом, и сделать это было не очень трудно. Но самое трудное — проявить гибкость при определении состава жеста. Ведь многие пользователи не проявляют достаточную аккуратность, пользуясь жестами. Вспомните отклонение, которое мы допускали, реализуя скольжение пальцем по экрану, чтобы считать жестом даже те скольжения, которые оказывались неидеально горизонтальными или вертикальными. Это характерный пример тонких различий, которые необходимо внести в собственные определения жестов. Если вы определите собственный жест слишком строго, он окажется бесполезным. Если вы определите его слишком обобщенно, то получите в итоге слишком много ложных срабатываний, способных привести пользователя в полное отчаяние. В известном смысле определение жеста может оказаться нелегким делом, поскольку нужно быть особенно точным в отношении степени неточности совершаемого жеста. Если попытаться зафиксировать такой сложный жест, как, например, фигурная восьмерка, то математический аппарат, который потребуется для обнаружения такого жеста, окажется столь же сложным.
- Дата: 20-01-2015, 11:01