iOS слайд из анимации просмотра слева/справа

Мое приложение для iOS6 имеет многоуровневое табличное представление, конечные узлы которого открывают отдельные представления. Анимация с первого уровня таблицы сдвигает старое представление влево, а новое представление — вправо. Я также хотел бы использовать эту скользящую анимацию при переходе от табличного представления к нетабличному представлению. Как?

Вот дополнительная информация:

На первом уровне табличного представления находятся Индикаторы раскрытия введите здесь описание изображения. При нажатии на один из них первый уровень таблицы сдвигается влево, а вид второго уровня появляется справа. Хорошо.

На втором уровне таблицы расположены кнопки подробного раскрытия информации введите здесь описание изображения, которые позволяют пользователю перейти к подробной информации. представление для этого элемента в таблице.

Я хотел бы предложить такую ​​же анимацию и здесь: табличное представление должно скользить влево, а новое представление должно скользить справа.

Во-первых, правильно ли я понимаю, что это правильная анимация для использования в данном случае?

Во-вторых, знаете ли вы, почему этой анимации "слайд-входа" нет в стандартных анимациях просмотра в UIViewAnimationTransition ниже?

typedef enum {
   UIViewAnimationTransitionNone,
   UIViewAnimationTransitionFlipFromLeft,
   UIViewAnimationTransitionFlipFromRight,
   UIViewAnimationTransitionCurlUp,
   UIViewAnimationTransitionCurlDown,
} UIViewAnimationTransition;

Наконец, если я хочу использовать тот же слайд в анимации, что и табличные представления, но он недоступен в качестве одного из стандартных представлений, как мне добавить эту анимацию при переходе между табличным представлением и нетабличным представлением?


person Justin Grant    schedule 31.10.2012    source источник
comment
Я думаю, что это не часть анимации по умолчанию, потому что ее можно просто воспроизвести, переведя вид (добавив frame.size.width к frame.origin.x), в отличие от других. Чтобы воспроизвести эту анимацию: почему бы вам не обернуть представления в контроллер представления и не поместить их в контроллер навигации?   -  person    schedule 31.10.2012
comment
да, используйте навигационный контроллер   -  person nielsbot    schedule 31.10.2012


Ответы (1)


Обычно этот тип анимации выполняется в UINavigationController и является результатом помещения нового viewController в стек. Если вы хотите имитировать его, все, что вам нужно сделать, это добавить новый открытый вид к вашему текущему базовому виду, справа от текущего вида (т.е. вне экрана) и использовать метод animateWithDuration:animations:completion: UIView для перемещения как на экране, так и на экране. off-screen просматривает один экран влево. (Используйте блок completion:, чтобы удалить исходный вид или оставить его на месте, чтобы вы могли легко анимировать его обратно на экран.)

person rsswtmr    schedule 31.10.2012
comment
Извините, не понятно, где вы получаете доступ к базовому представлению... Что вы имеете в виду? - person Sam Ballantyne; 29.12.2013
comment
Под базовым представлением я имел в виду текущее представление viewController. Поместите новый вид справа от него и анимируйте оба, двигаясь влево, пока текущий вид не исчезнет с экрана. Затем замените представление viewController новым представлением. - person rsswtmr; 30.12.2013
comment
Спасибо - я попробовал, и вы правы: это отличный способ сделать это. +1 - person Sam Ballantyne; 30.12.2013