Подход iOS для пользовательского перехода

80
6

При представлении UIViewController, который реализует UIViewControllerTransitioningDelegate, можно легко настроить viewtransition.


Теперь я хотел бы узнать, могу ли я настроить viewtransition для подзаголовка? Допустим, у меня есть таблеточная плитка, которая в настоящее время переворачивается при использовании (UIViewAnimationOptionTransitionFlipFromRight). Хотя это очень хороший эффект, я бы скорее хотел настроить этот переход. Но я не знаю, как начать.


Чтобы уточнить, я хотел бы использовать AnimationController<UIViewControllerAnimatedTransitioning> для обработки моего subviewtransition - возможно ли это?


Любые предложения?

спросил(а) 2014-12-23T15:07:00+03:00 5 лет, 9 месяцев назад
1
Решение
57

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


Вот две статьи, описывающие то, что вы ищете в деталях:

Переходы контроллера пользовательского контейнера
http://www.objc.io/issue-12/custom-container-view-controller-transitions.html


Интерактивные пользовательские переходы контроллера просмотра контейнеров
http://www.iosnomad.com/blog/2014/5/12/interactive-custom-container-view-controller-transitions

ответил(а) 2014-12-26T18:16:00+03:00 5 лет, 9 месяцев назад
57

Отвечая на ваш комментарий: вы не можете.


Из документации протокола UIViewControllerAnimatedTransitioning:

Принять протокол UIViewControllerAnimatedTransitioning в объектах, которые реализуют анимации для пользовательского перехода контроллера просмотра. Методы в этом протоколе позволяют определить объект аниматора, который создает анимацию для перехода на экран " диспетчер представлений" на экране или за его пределами в течение фиксированного промежутка времени.



Этот протокол предназначен только для UIViewControllers (и его потомков), а UIView не наследует его.

ответил(а) 2014-12-23T17:10:00+03:00 5 лет, 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема