2017-10-30 5 views
2

ナビゲーションコントローラのカスタムプッシュトランジションを実装します。snapshotView(afterScreenUpdates:true)は空のビューを返します

最初にのオブジェクトを返すUINavigationControllerDelegateを実装しました。

このクラスでは、アニメーション化するために、宛先ビューのスナップショットを撮りたいと思います。しかし、プッシュセグの場合、これは機能しません - スナップショットは空です。 [私は戻ってポップときは、私が​​を設定し、すべてが作品] -snapshotViewAfterScreenUpdatesため供給

guard let fromVC = transitionContext.viewController(forKey: UITransitionContextViewControllerKey.from), 
     let toVC = transitionContext.viewController(forKey: UITransitionContextViewControllerKey.to) else { 
      return 
    } 

    guard let snapshot = toVC.view.snapshotView(afterScreenUpdates: true) else { 
     return } 

    // Problem: 
    // snapshot is an empty view! 

答えて

0

:それは実際に画像を描画するために戻って実行ループへの旅行を必要とすることを意味します。 NOを指定するとすぐに試行されますが、画面が画面外にある場合や画面にまだ描画されていない場合は、スナップショットは空になります。

+0

"実際に画像を描くためにはランループに戻る必要があることを意味します*" - これを実現するヒントはありますか? – Pascal

+0

@Pascal trueを使ってこれを実現できますが、すぐに画像を見たい場合は-snapshotViewAfterScreenUpdatesにfalseを使うべきです: – SergStav

関連する問題