Анимации iOS SDK позволяют оживить ваши приложения привлекательными визуальными эффектами и переходами. В iOS SDK анимации часто используются для изменения положения видов, изменения их размеров, удаления или добавления представлений из иерархий представлений, а также для полного скрытия представлений. Читайте дальше, чтобы узнать, как эти эффекты достигаются!
Чтобы создать анимацию с помощью iOS SDK, вам не нужно писать какой-либо пользовательский код для рисования. Все, что вам нужно сделать, это запустить анимацию несколькими простыми вызовами, а платформа Core Animation сделает тяжелую работу. С помощью этого фреймворка вы можете создать анимацию всего за несколько строк кода, и это хорошо для нас, как для ленивых разработчиков!
В UIKit анимация выполняется с использованием объектов UIView. Вы можете анимировать изменения свойств вида или использовать анимацию перехода, чтобы заменить один набор видов другим. Вы можете анимировать следующие свойства UIView с UIKit:
- Рамка
- оценки
- центр
- преобразование
- альфа
- фоновый цвет
- contentStretch
Если ваше приложение работает в iOS 3.2 и более ранних beginAnimations:context:
, вы должны использовать методы класса beginAnimations:context:
и commitAnimations
класса UIView для определения ваших блоков анимации. Этот метод я буду использовать в этом кратком совете, потому что он работает на всех версиях iOS.
Чтобы начать анимационный блок, вы будете использовать [UIView beginAnimations:(NSString *) context:(void *)];
, После написания кода для настройки анимации (т.е. изменения свойств UIView) вы завершите блок анимации с помощью [UIView commitAnimations];
,
Вы можете настроить блок анимации с помощью следующих методов класса UIView:
- дата начала анимации
- задержка анимации
- продолжительность анимации
- кривая анимации
- количество повторений анимации
- анимация повтора автореверсов
- делегат анимации
- анимация запустит селектор
- анимация остановила селектор
- анимация существ из текущего состояния
С помощью кода начала и коммита выше вы можете создать анимацию. Чтобы увидеть это на практике, давайте рассмотрим пример:
1
2
3
4
5
6
7
|
[UIView beginAnimations:@»My First Animation» context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationDelay:2.0];
self.view.backgroundColor = [UIColor redColor];
[UIView commitAnimations];
|
Как видите, я начал анимационный блок с [UIView beginAnimations:(NSString *) context:(void *)];
и назвал это «Моя первая анимация». После этого я установил длительность на 1 секунду, а задержку на 2 секунды, чтобы анимация начиналась через две секунды, и для ее завершения потребуется 1 секунда. С помощью этой анимации я анимирую цвет фона представления в красный цвет. Если цвет фона представления уже был красным, вы не увидите анимацию, но она все равно будет анимирована. Наконец я заканчиваю свой блок анимации с помощью [UIView commitAnimations];
,
Вот пример анимации, где мы вращаемся в представлении:
1
2
3
4
5
6
7
8
|
[UIView beginAnimations:@»Rotate» context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(rotateBack)];
theView.transform = CGAffineTransformMakeRotation(M_PI);
[UIView commitAnimations];
|
Настройка этого блока анимации выглядит так же, как и предыдущий, только на этот раз я использовал делегат анимации и использовал свойство transform. Если вы хотите использовать метод селектора did stop , вам нужно установить для делегата значение self . Итак, если эта анимация завершена, будет вызван метод rotateBack . С помощью свойства transform вы можете масштабировать, поворачивать или переводить вид. Преобразование всегда будет в 2D. Как видите, для угла поворота я использовал M_PI. По умолчанию Objective-C работает с радианами вместо градусов. 360 градусов — это то же самое, что и 2∏, поэтому вид повернется на 180 градусов.
01
02
03
04
05
06
07
08
09
10
|
— (void) rotateBack
{
[UIView beginAnimations:@»Rotate back» context:nil];
[UIView setAnimationDuration:1.0];
theView.transform = CGAffineTransformIdentity;
[UIView commitAnimations];
}
|
Это метод, который будет вызываться после завершения анимации поворота. В этом анимационном блоке мы поворачиваем вид назад к его первоначальному месту. Мы делаем это с CGAffineTransformIdentity
функции CGAffineTransformIdentity
. Это отменит поворотное преобразование.
Хотите узнать больше? Вы можете увидеть еще несколько примеров анимации в прилагаемом исходном коде.
Я надеялся, что вам понравился этот быстрый SDK для iOS по анимации! Пожалуйста, дайте мне знать ваш отзыв, оставив комментарий ниже. Вы также можете предложить идеи для дополнительных учебных пособий для нас в будущем!