2016-08-23 3 views
0

を実行していない:ヒットは1、3であることのブレークポイントのaddCoordinatedAnimationsアニメーションブロックは、Xcodeの7.3.1、私はUIFocusAnimationCoordinatorのaddCoordinatedAnimations機能がアニメーションする前に完了したことを実行している使用場所の一つにtvOSで

if (coordinator != nil) { 
    var tempDidAnimate: Bool = false // breakpoint 1 
    coordinator!.addCoordinatedAnimations({ 
     self.myFunctionThatDoesntGetCalled() // breakpoint 2 
     tempDidAnimate = true 
     }, completion: { 
      () in 
      if tempDidAnimate == false { 
       print("whaaaat?!??") // breakpoint 3 
       self.myFunctionThatDoesntGetCalled()       
      } 
    }) 
} 

注文。決して2.

if tempDidAnimate == falseをこのように使用すると問題は解決しますが、なぜこの問題が発生するのかわかりません。

何が間違っている可能性がありますか?

アイデア:既にスタックのaddCoordinatedAnimationsブロック内にあります...私はそうは思わないが、スタックは複雑です...コードで確認する方法はありません。

+0

どこに追加しますか?オプションではない 'coordinator'パラメータを持つ' didUpdateFocusInContext'にカスタムフォーカスアニメーションを追加する必要があります。 – beyowulf

+0

私はdidUpdateFocusInContextで始まり、ブロックとセレクタ/関数のいくつかのレベルを深く呼びます。 –

答えて

0

tl; dr:はい私は既にアニメーションブロック#$ &^@#$!の中にいました。

私の "巧みな"リファクタリングコードでは、現在アクティブな自動レイアウトアニメーションをリセットするアニメーションブロックを呼び出していることを忘れていました(継続時間0の新しいアニメーションを要求することによって)。その上で、上記の私のコードは呼び出されています...私はすでにアニメーションブロック内にあるので、OSは上のメインアニメーションブロックを実行することを拒否し、完了までスキップします。このOSの動作がどこに文書化されているかわかりません。

関連する問題