セグエ速度を制御することは可能ですか?
ドキュメントを確認しましたが、Apple による特定の方法はありません。
しかし、私はハックして下位レベルのコードを変更してスローモーションでセグエイングを行うアイデアをもっと探しています。
セグエ速度を制御することは可能ですか?
ドキュメントを確認しましたが、Apple による特定の方法はありません。
しかし、私はハックして下位レベルのコードを変更してスローモーションでセグエイングを行うアイデアをもっと探しています。
以下のコードはカスタムセグエのものであり、コードで遷移の期間を設定できます。
- (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
ダウンロードして実行するだけです。これがあなたのお役に立てば幸いです。
ゾンビの作成を防ぐために、サブビューの追加/削除も使用する方がよいと思います:
- (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;
}];
}
これは、ナビゲーション コントローラーを使用していない場合です。