Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы UIKit ссылка на протокол UIViewControllerTransitionCoordinator

Опции
Развертывание Target:

На этой странице
Язык:

UIViewControllerTransitionCoordinator

Наследование


Не применимый

Оператор импорта


Swift

import UIKit

Objective C

@import UIKit;

Доступность


Доступный в iOS 7.0 и позже.

Объект, принимающий UIViewControllerTransitionCoordinator протокол предоставляет поддержку для анимаций, связанных с целью переход контроллера. Как правило, Вы не принимаете этот протокол в своих собственных классах. Когда Вы представляете или отклоняете контроллер представления, UIKit создает координатора перехода объект автоматически и присваивает его контроллеру представления transitionCoordinator свойство. Тот координатор перехода возражает, эфемерно и продолжается в период анимации перехода.

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

Координатор перехода работает с объектами Animator, чтобы гарантировать, что любые дополнительные анимации выполняются в той же группе анимации как анимации перехода. Наличие анимаций в той же группе означает, что они выполняются одновременно и могут все реагировать на изменения синхронизации, предоставленные интерактивным объектом Animator. Эти корректировки синхронизации происходят автоматически и не требуют никакого дополнительного кода с Вашей стороны.

Используя координатора перехода для обработки анимаций иерархии представления предпочтен по внесению тех тех же изменений в viewWillAppear: или похожие методы Ваших контроллеров представления. Блоки, которые Вы регистрируете в методах этого протокола, как гарантируют, выполнятся в то же время, что и анимации перехода. Что еще более важно координатор перехода предоставляет важную информацию о состоянии перехода, такой как, было ли это отменено к Вашим блокам анимации через UIViewControllerTransitionCoordinatorContext объект.

В дополнение к регистрирующимся анимациям для выполнения во время перехода можно вызвать notifyWhenInteractionEndsUsingBlock: метод для регистрации блока для очистки анимаций связался с интерактивным переходом. Когда пользователь отменяет переход в интерактивном режиме, очистка особенно важна. Когда отмена происходит, необходимо возвратиться к исходному состоянию иерархии представления, поскольку это существовало перед переходом.

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

  • Выполняет указанные анимации в то же время, что и анимации перехода контроллера представления. (требуемый)

    Объявление

    Swift

    func animateAlongsideTransition(_ animation: ((UIViewControllerTransitionCoordinatorContext!) -> Void)!, completion completion: ((UIViewControllerTransitionCoordinatorContext!) -> Void)!) -> Bool

    Objective C

    - (BOOL)animateAlongsideTransition:(void (^)(id<UIViewControllerTransitionCoordinatorContext> context))animation completion:(void (^)(id<UIViewControllerTransitionCoordinatorContext> context))completion

    Параметры

    animation

    Блок, содержащий анимации, Вы хотите выполнить. Эти анимации, выполненные в том же контексте как анимации перехода и поэтому, имеют те же атрибуты по умолчанию. Можно указать nil для этого параметра.

    Блок не имеет никакого возвращаемого значения и берет следующий параметр:

    context

    Контекстная информация для выполнения анимаций. Используйте этот объект получить связанную с анимацией информацию, включая контейнерное представление, в котором можно выполнить Ваши анимации. Для получения дополнительной информации посмотрите Ссылку на протокол UIViewControllerTransitionCoordinatorContext.

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

    completion

    Блок кода для выполнения после перехода заканчивается. Можно указать nil для этого параметра. Блок не имеет никакого возвращаемого значения и берет следующий параметр:

    context

    Контекстная информация для выполнения анимаций. Используйте этот объект получить связанную с анимацией информацию, включая контейнерное представление, в котором можно выполнить Ваши анимации. Для получения дополнительной информации посмотрите Ссылку на протокол UIViewControllerTransitionCoordinatorContext.

    Возвращаемое значение

    YEStrue если анимации были успешно поставлены в очередь для выполнения или NOfalse если они не были.

    Обсуждение

    Используйте этот метод для выполнения анимаций, не обрабатывающихся самими объектами Animator. Все анимации, которые Вы указываете, должны произойти в представлении контейнера контекста анимации (или один из его потомков). Используйте containerView свойство объекта контекста для получения контейнерного представления. Для выполнения анимаций в представлении, не убывающем от контейнерного представления используйте animateAlongsideTransitionInView:animation:completion: метод вместо этого.

    Анимации в animation параметр обычно выполняется одновременно с анимациями перехода контроллера представления. То поведение применяется когда объект Animator animateTransition: метод реализован с помощью UIView- основанные анимации. Если использование объекта Animator Базовая Анимация для анимации содержания уровня непосредственно анимации выполняются вскоре после animateTransition: возвраты метода.

    Этот метод возвраты NOfalse когда блок в animation параметр не может быть поставлен в очередь для выполнения. Блок завершения может все еще работать, даже когда возвращается этот метод NOfalse.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 7.0 и позже.

  • Выполняет указанные анимации в представлении, которое является за пределами определяемого контейнерного представления. (требуемый)

    Объявление

    Swift

    func animateAlongsideTransitionInView(_ view: UIView!, animation animation: ((UIViewControllerTransitionCoordinatorContext!) -> Void)!, completion completion: ((UIViewControllerTransitionCoordinatorContext!) -> Void)!) -> Bool

    Objective C

    - (BOOL)animateAlongsideTransitionInView:(UIView *)view animation:(void (^)(id<UIViewControllerTransitionCoordinatorContext> context))animation completion:(void (^)(id<UIViewControllerTransitionCoordinatorContext> context))completion

    Параметры

    view

    Представление (или один из его наследователей), в котором имеют место указанные анимации. Этот параметр не должен быть nil.

    animation

    Блок, содержащий анимации, Вы хотите выполнить. Эти анимации, выполненные в том же контексте как анимации перехода и поэтому, имеют те же атрибуты по умолчанию. Можно указать nil для этого параметра.

    Блок не имеет никакого возвращаемого значения и берет следующий параметр:

    context

    Контекстная информация для выполнения анимаций. Используйте этот объект получить связанную с анимацией информацию. Для получения дополнительной информации посмотрите Ссылку на протокол UIViewControllerTransitionCoordinatorContext.

    completion

    Блок кода для выполнения после перехода заканчивается. Можно указать nil для этого параметра. Блок не имеет никакого возвращаемого значения и берет следующий параметр:

    context

    Контекстная информация для выполнения анимаций. Используйте этот объект получить связанную с анимацией информацию. Для получения дополнительной информации посмотрите Ссылку на протокол UIViewControllerTransitionCoordinatorContext.

    Возвращаемое значение

    YEStrue если указанная анимация успешно ставится в очередь для выполнения; иначе NOfalse.

    Обсуждение

    Используйте этот метод для выполнения анимаций, не обрабатывающихся самими объектами Animator. Анимации Вы указываете в animation параметр должен все иметь место в представлении, убывавшем от представления, которое Вы указываете в view параметр.

    Анимации в animation параметр обычно выполняется одновременно с анимациями перехода контроллера представления. То поведение применяется когда объект Animator animateTransition: метод реализован с помощью UIView- основанные анимации. Если использование объекта Animator Базовая Анимация для анимации содержания уровня непосредственно анимации выполняются вскоре после animateTransition: возвраты метода.

    Этот метод возвраты NOfalse когда блок в animation параметр не может быть поставлен в очередь для выполнения. Блок завершения может все еще работать, даже когда возвращается этот метод NOfalse.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 7.0 и позже.

  • Регистрирует блок, который будет выполняться, когда переход изменяется от интерактивного до неинтерактивного. (требуемый)

    Объявление

    Swift

    func notifyWhenInteractionEndsUsingBlock(_ handler: (UIViewControllerTransitionCoordinatorContext!) -> Void)

    Objective C

    - (void)notifyWhenInteractionEndsUsingBlock:(void (^)(id<UIViewControllerTransitionCoordinatorContext> context))handler

    Параметры

    handler

    Блок для выполнения, когда переход изменяется от интерактивного до неинтерактивного. Блок не имеет никакого возвращаемого значения и берет следующий параметр:

    context

    Контекстная информация для выполнения анимаций. Используйте этот объект получить связанную с анимацией информацию. Для получения дополнительной информации посмотрите Ссылку на протокол UIViewControllerTransitionCoordinatorContext.

    Обсуждение

    Ваш блок выполняется и когда переход завершается обычно и когда пользователь отменяет переход. В случае, где пользователь отменяет переход, UIKit выполняет Ваш context блок, вызовы viewWillDisappear: метод на представленном контроллере представления, и наконец вызывает viewWillAppear: метод на исходном контроллере представления, чтобы сигнализировать, что это еще раз видимо.

    В Вашем блоке можно получить значение isCancelled метод координатора перехода контекст и использование, оценивающие для определения надлежащего плана действий. Например, если бы переход был отменен, то Вы могли бы использовать этот блок для удаления любых дополнительных представлений, добавленных к иерархии представления предыдущим вызовом к animateAlongsideTransition:completion: или animateAlongsideTransitionInView:animation:completion:.

    Можно вызвать этот метод многократно для регистрации многократных блоков. Когда переходное состояние изменяется, все зарегистрированные блоки выполняются.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 7.0 и позже.