UIViewControllerAnimatedTransitioning
Наследование
Не применимый
Оператор импорта
Swift
import UIKit
Objective C
@import UIKit;
Доступность
Доступный в iOS 7.0 и позже.
Примите UIViewControllerAnimatedTransitioning
протокол в объектах, реализующих анимации для пользовательского перехода контроллера представления. Методы в этом протоколе позволяют Вам определить объект Animator, создающий анимации для перехода контроллера представления на или от экрана в фиксированном количестве времени. Анимации Вы создаете использование этого протокола, не должны быть интерактивными. Для создания интерактивных переходов необходимо объединить объект Animator с другим объектом, управляющим синхронизацией анимаций.
В Вашем объекте Animator реализуйте transitionDuration:
метод, чтобы указать продолжительность Вашего перехода и реализовать animateTransition:
метод для создания самих анимаций. Информация об объектах, вовлеченных в переход, передается Вашему animateTransition:
метод в форме объекта контекста. Используйте информацию, предоставленную тем объектом углубить целевое представление контроллера представления или от экрана по указанной продолжительности.
Создайте свой объект Animator от переходящего делегата — объект, соответствующий UIViewControllerTransitioningDelegate
протокол. При представлении контроллера представления, Св. стиль презентации к UIModalPresentationCustom
и присвойте своего переходящего делегата в контроллере представления transitioningDelegate
свойство. Контроллер представления получает Ваш объект Animator от переходящего делегата и использует его для выполнения анимаций. Можно обеспечить отдельные объекты Animator для представления и отклонения контроллера представления.
Для добавления взаимодействия с пользователем к переходу контроллера представления необходимо использовать объект Animator вместе с интерактивным объектом Animator — пользовательский объект, принимающий UIViewControllerInteractiveTransitioning
протокол. Для больше при определении интерактивных переходов, посмотрите Ссылку на протокол UIViewControllerInteractiveTransitioning.
-
animateTransition (_:) - animateTransition:
ТребуемыйГоворит Вашему объекту Animator выполнять анимации перехода. (требуемый)
Объявление
Swift
func animateTransition(_
transitionContext
: UIViewControllerContextTransitioning)Objective C
- (void)animateTransition:(id<UIViewControllerContextTransitioning>)
transitionContext
Параметры
transitionContext
Объект контекста, содержащий информацию о переходе.
Обсуждение
UIKit вызывает этот метод при представлении или отклонении контроллера представления. Используйте этот метод для конфигурирования анимаций, связанных с пользовательским переходом. Можно использовать основанные на представлении анимации или Базовую Анимацию для конфигурирования анимаций.
Все анимации должны иметь место в представлении, указанном
containerView
свойствоtransitionContext
. Добавьте представляемое представление (или показал, включает ли переход отклонение контроллера представления) к иерархии контейнерного представления, и установите любые анимации, Вы хотите превратить то перемещение представления в позицию. Если Вы хотите нарисовать на экран непосредственно без представления, используйте этот метод для конфигурирования aCADisplayLink
объект вместо этого.Можно получить контроллеры представления, вовлеченные в переход от
viewControllerForKey:
методtransitionContext
. Для получения дополнительной информации об информации, предоставленной объектом контекста, посмотрите Ссылку на протокол UIViewControllerContextTransitioning.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 7.0 и позже.
-
Говорит Вашему объекту Animator, что закончились анимации перехода.
Объявление
Swift
optional func animationEnded(_
transitionCompleted
: Bool)Objective C
- (void)animationEnded:(BOOL)
transitionCompleted
Параметры
transitionCompleted
Содержит значение
YES
true
если переход завершился успешно, и новый контроллер представления теперь выведен на экран илиNO
false
если переход был отменен, и исходный контроллер представления все еще видим.Обсуждение
UIKit вызывает этот метод в конце перехода для сообщения результатов. Используйте этот метод для выполнения любых заключительных операций очистки, требуемых аниматором перехода, когда закончится переход.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 7.0 и позже.
См. также
-
transitionDuration (_:) - transitionDuration:
ТребуемыйСпрашивает Ваш объект Animator в течение какого-то времени (в секундах) анимации перехода. (требуемый)
Объявление
Swift
func transitionDuration(_
transitionContext
: UIViewControllerContextTransitioning) -> NSTimeIntervalObjective C
- (NSTimeInterval)transitionDuration:(id<UIViewControllerContextTransitioning>)
transitionContext
Параметры
transitionContext
Объект контекста, содержащий информацию для использования во время перехода.
Возвращаемое значение
Продолжительность, в секундах, Вашей пользовательской анимации перехода.
Обсуждение
UIKit вызывает этот метод для получения информации синхронизации для анимаций. Значение, которое Вы обеспечиваете, должно быть тем же значением, которое Вы используете при конфигурировании анимаций в Вашем
animateTransition:
метод. UIKit использует значение для синхронизации действий других объектов, которые могли бы быть вовлечены в переход. Например, контроллер навигации использует значение для синхронизации изменений в панели навигации.При определении значения для возврата предположите, что не будет никакого взаимодействия с пользователем во время перехода — даже если Вы запланируете поддерживать взаимодействие с пользователем во время выполнения.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 7.0 и позже.