Уроки iPhone SDK: Использования возможностей сенсорного экрана - Виды касаний Уроки iPhone SDK: (Часть 1) Перемещение и вращение изображений.
Июн 03

Переходы в представлениях способны оживить любое приложение. На текущий момент таких внедренных переходов насчитывается четыре:

  • Отворот вверх (UIViewAnimationTransitionCurlUp) — проверьте на iPhone приложение Maps, хотя это не самый удачный вариант. Все просто: при пролистывании страницы представление отворачивается снизу вверх.
  • Отворот вниз (UIViewAnimationTransitionCurlDown)
  • Переворот справа (UIViewAnimationTransitionFlipFromRight) — точно так, как в приложении Weather при нажатии кнопки “info”; переворот представления вокруг вертикальной оси.
  • Переворот слева (UIViewAnimationTransitionFlipFromLeft)

Код настройки перехода для представления практически ничем не отличается от других разновидностей анимации (см. пример):

1
2
3
4
5
6
7
8
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.5];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:placeholder cache:YES];
[view1 removeFromSuperview];
[placeholder addSubview:view2];
[view2 removeFromSuperview];
[placeholder addSubview:view1];
[UIView commitAnimations];

Представление с именем “placeholder” добавлено как часть “self.view” контроллера представления. “view1” и “view2” — два разных представления, между которыми осуществляется переход (от первого ко второму и наоборот). В процессе анимации / перехода представление переворачивается, скрывая “view1” и открывая “view2“. Находящиеся за ним элементы частично просматриваются. Анимация длится 1,5 с (настройка в “setAnimationDuration“).

Примечание 1

Речь идет об анимации: это оптическая иллюзия, а не поворот/вращение объекта. У объекта “UIView” (в данном случае “placeholder“) нет передней или задней стороны. “view1” после перехода не скрывается за представлением, а удаляется, а объект “placeholder” просматривается через “view2“, являющееся для него подпредставлением.

Примечание 2

На симуляторе iPhone эффект отворота вверх/вниз увидеть нельзя: картинка просто исчезает, хотя на реальном устройстве все выглядит нормально.

Примечание 3

Если анимируемое представление (в нашем случае “placeholder“, поскольку “view1” и “view2” — добавляемые и удаляемые объекты) по размеру больше, чем view1/view2, постоянно будет просматриваться его часть, хотя анимация будет распространяться и на нее.

Примечание 4

От раздражающего белого фрагмента при анимации легко избавиться, добавив за объект “placeholder” что-то черное — еще одно представление или, например, изображение.

Переход с исчезновением изображения

Я уже говорил, что переходов только четыре, но многих интересует эффект исчезновения. Все очень просто: создается обычная анимация, которая будет менять свойство “alpha” для обоих представлений:

1
2
3
4
5
6
7
8
9
placeholder addSubview:view2];
[placeholder addSubview:view1];

view2.alpha = 0;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.5];
view1.alpha = 0;
view2.alpha = 1;
[UIView commitAnimations];

Желающие могут загрузить подготовленный проект и протестировать отвороты вверх и вниз, перевороты справа налево и наоборот, постепенное исчезновение и переворот слева вместе с “self.view” вместо представления “placeholder“.

Исходный код скачать можно [здесь]

Текст оригинальной статьи на английском языке [здесь]

Уважаемые читатели, данный материал был переведен и подготовлен к публикации проектом LookApp.ru, при публикации на другом сайте ссылка на LookApp.ru обязательна.

1 звезда2 звезд3 звезд4 звезд5 звезд (8 голосов, средний: 4.88 из 5)
Загрузка ... Загрузка ...


2 Responses to “Уроки iPhone SDK: Переход с исчезновением изображения”

  1. 1. ARtt Says:

    оттлично спс !!! +5

  2. 2. Рома Says:

    Согласен, материал как-раз кстати!

Оставьте комментарий