3

セグエ速度を制御することは可能ですか?

ドキュメントを確認しましたが、Apple による特定の方法はありません。

しかし、私はハックして下位レベルのコードを変更してスローモーションでセグエイングを行うアイデアをもっと探しています。

4

2 に答える 2

5

以下のコードはカスタムセグエのものであり、コードで遷移の期間を設定できます。

- (void)perform 
{
    UIViewController *src = (UIViewController *) self.sourceViewController;
    UIViewController *dst = (UIViewController *) self.destinationViewController;
    [UIView transitionFromView:src.view
                        toView:dst.view
                      duration:3.0
                       options:UIViewAnimationOptionTransitionFlipFromLeft
                    completion:NULL];

}

サンプルプロジェクトはGitHubにあります:https ://github.com/weed/p120805_CustomSegue

ダウンロードして実行するだけです。これがあなたのお役に立てば幸いです。

于 2012-08-05T06:52:36.313 に答える
0

ゾンビの作成を防ぐために、サブビューの追加/削除も使用する方がよいと思います:

- (void)perform
{
    UIView *src = ((UIViewController *) self.sourceViewController).view;
    UIView *dst = ((UIViewController *) self.destinationViewController).view;

    UIWindow *window = [[[UIApplication sharedApplication] delegate] window];
    [window insertSubview:dst aboveSubview:src];

    [UIView transitionFromView:src
                        toView:dst
                      duration:1.5
                       options:UIViewAnimationOptionTransitionCrossDissolve
                    completion:^(BOOL finished){
                        [src removeFromSuperview];
                        window.rootViewController = self.destinationViewController;
                    }];
}

これは、ナビゲーション コントローラーを使用していない場合です。

于 2014-03-28T17:01:38.210 に答える