18

理想的には、この値を含むある種の定数があるでしょう。

独自のトランジション アニメーションを持つコードを実装していますが、プラットフォームのトランジション アニメーションと同じ長さにしたいと考えています。

4

2 に答える 2

26

iOS 7以降では、UINavigationControllerデリゲートを設定してメソッドを使用することで、正確な値を取得できます。

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

デフォルトの期間が変更される場合、これは将来の保証方法です。現時点での値は 0.35 秒です。

于 2015-02-27T14:16:41.007 に答える
22

この値を含む定数はありません。ただし、次の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

于 2011-09-30T10:54:41.013 に答える