Подтвердить что ты не робот

Как долго происходит анимация перехода между представлениями на UINavigationController?

В идеале, будет какая-то константа, содержащая это значение.

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

4b9b3361

Ответ 1

Нет константы, содержащей это значение. Однако, используя следующие методы UINavigationControllerDelegate:

- (void) navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    startTime = [[NSDate date] retain];
}

- (void) navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    NSLog(@"Duration %f", [[NSDate date] timeIntervalSinceDate: startTime]);
}

... Я вижу, что продолжительность составляет около 0,35 секунды

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

http://www.iclarified.com/12396/a-closer-look-at-iphone-transition-animations

Ответ 2

В iOS 7, а затем вы можете получить точное значение, установив делегат UINavigationController и используя метод:

- (void)navigationController:(UINavigationController *)navigationController
      willShowViewController:(UIViewController *)viewController
                    animated:(BOOL)animated {
    NSTimeInterval duration = [viewController.transitionCoordinator transitionDuration];
}  

Это будущий метод доказательства, если длительность дефиле будет когда-либо изменяться. В настоящий момент это значение составляет 0,35 секунды.