iOS. Приемы программирования
Шрифт:
Постановка задачи
Требуется анимировать смещение видов.
Решение
При смещении видов используйте анимационные методы класса UIView.
Обсуждение
В операционной системе iOS предоставляются различные способы выполнения анимации, среди этих возможностей есть как низкоуровневые, так и сравнительно высокоуровневые. Самый высокий уровень работы в данном случае обеспечивается во фреймворке UIKit, о котором мы также поговорим в этом разделе. В UIKit содержится некоторая низкоуровневая функциональность Core Animation,
Работа с анимацией в UIKit начинается с вызова метода класса beginAnimations: context:, относящегося к классу UIView. Первый параметр — это опциональное имя, которое вы можете выбрать для вашей анимации, а второй — опциональный контекст, который можно получить позже для передачи анимационным методам делегатов. Вскоре мы поговорим о них обоих.
После того как вы запустите анимацию с помощью метода beginAnimations: context:, она не начнет происходить, так как для этого потребуется еще вызвать метод класса commitAnimations, относящийся к классу UIView. Вычисления, которые вы производите над объектом-видом между вызовом beginAnimations: context: и commitAnimations (в результате которых этот вид, к примеру, перемещается), будут сопровождаться анимацией только после вызова commitAnimations. Рассмотрим пример.
Как упоминалось в разделе 17.4, я включил в пакет моего приложения рисунок Xcode.png. Это ярлык Xcode, который я нашел в картинках Google (см. рис. 17.9). Теперь в моем контроллере вида (см. введение к этой главе) я хочу поместить этот рисунок в виде с изображением типа UIImageView, а потом переместить этот вид с изображением из верхнего левого угла экрана в нижний правый угол.
Вот как мы решим эту задачу.
1. Откройте. h-файл вашего контроллера вида.
2. Определите экземпляр UIImageView как свойство контроллера вида и назовите его xcodeImageView:
4. На рис. 17.33 показано, как будет выглядеть вид, когда программа запускается в симуляторе iOS.
Рис. 17.33.
5. Теперь, когда вид появится на экране в методе экземпляра viewDidAppear: контроллера вида, приступим к исполнению анимационного блока, относящегося к виду с изображением. Эта анимация переместит изображение из исходной точки (в левом верхнем углу) в нижний правый угол. Кроме того, мы убедимся, что анимация произойдет за пятисекундный период:
6. Далее выполните реализацию метода делегата imageViewDidStop: finished: context: для контроллера вида, чтобы он вызывался UIKit по завершении анимации. Это не обязательно, так что для примера я просто зарегистрирую несколько сообщений, демонстрирующих, что метод действительно был вызван. В следующих примерах будет показано, как можно использовать метод для запуска какой-то иной активности в момент окончания анимации:
#Бояръ-Аниме. Газлайтер. Том 36
36. История Телепата
Фантастика:
боевая фантастика
аниме
фэнтези
рейтинг книги
Наша навсегда
2. Наша
Любовные романы:
современные любовные романы
эро литература
рейтинг книги
Кодекс Крови. Книга ХVIII
18. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Газлайтер. Том 4
4. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
рейтинг книги
Точка Бифуркации III
3. ТБ
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Геном хищника. Книга пятая
5. Я - Легенда!
Фантастика:
рпг
фэнтези
попаданцы
рейтинг книги
Вторая жизнь майора. Цикл
Вторая жизнь майора
Фантастика:
героическая фантастика
боевая фантастика
попаданцы
рейтинг книги
Двойник Короля 4
4. Двойник Короля
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
рейтинг книги
Черный Маг Императора 6
6. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
рейтинг книги
Наследник
1. Рюрикова кровь
Фантастика:
научная фантастика
попаданцы
альтернативная история
рейтинг книги