iOS. Приемы программирования
Шрифт:
10.6. Обнаружение щипка
Постановка задачи
Необходимо предоставить пользователю возможность выполнять движения щипка.
Решение
Создайте экземпляр класса UIPinchGestureRecognizer и добавьте его к вашему целевому виду, воспользовавшись методом экземпляра addGestureRecognizer:, относящимся к классу UIView:
Обсуждение
Щипки позволяют пользователю легко масштабировать (увеличивать и уменьшать) элементы графического интерфейса. Например, браузер Safari в iOS дает возможность щипком на веб-странице увеличивать ее содержимое. Щипок работает в двух направлениях: увеличение и уменьшение масштаба. Это непрерывный жест, который на сенсорном экране всегда выполняется двумя пальцами.
Данный распознаватель жестов может пребывать в следующих состояниях:
• UIGestureRecognizerStateBegan;
• UIGestureRecognizerStateChanged;
• UIGestureRecognizerStateEnded.
Как только щипок распознан, вызывается действующий метод целевого объекта (и будет последовательно вызываться до тех пор, пока щипок не окончится). В действующем методе вы получаете
Значение свойства scale можно передать функции CGAffineTransformMakeScale из фреймворка Core Graphics, чтобы получить аффинное преобразование. Такое преобразование применимо к свойству transform любого экземпляра класса UIView, оно позволяет изменять преобразование этого элемента. Мы воспользуемся этой функцией следующим образом:
Поскольку свойство scale распознавателя жестов сбрасывается всякий раз, когда регистрируется новый щипок, мы сохраняем последнее значение этого свойства в общем свойстве экземпляра (Instance Property) контроллера вида, называемом currentScale. В следующий раз, когда будет распознан новый жест, мы отсчитываем коэффициент масштабирования от последнего зафиксированного значения, что и продемонстрировано в коде.
Глава 11. Сетевые функции, JSON, XML и Twitter
11.0. Введение
Стоит подключить приложение iOS к Интернету — и оно становится гораздо интереснее. Например, представьте себе приложение, которое предлагает пользователям великолепные фоновые картинки для Рабочего стола. Пользователь может выбрать вариант из большого списка изображений и присвоить любой из этих рисунков в качестве фонового операционной системе iOS. А теперь вообразим себе приложение, которое делает то же самое, но обновляет ассортимент имеющихся изображений каждый день, неделю или месяц. Пользователь после какого-то перерыва возвращается к работе с программой и — опа! Масса новых фоновых изображений динамически загружается в приложение. В этом и есть изюминка работы с веб-службами и Интернетом. Реализовать такие функции не составляет труда, если обладать базовыми знаниями о работе в Сети, применении JSON, XML и Twitter. Ну, еще от разработчика приложения требуется известная креативность.