2009-05-27 5 views
3

私はビューコントローラをロードするメソッドを呼び出すコアアニメーションブロックを持っています。 2つのView Controller間でカスタムトランジションが発生します。しかし、ビューコントローラがインターフェイスを構築するとき、これらすべてのものはコアアニメーションの影響を受けます。面白い効果がありますが、私はそれを望んでいません;)残念ながら私はブロックからその部分を移動することはできません。コアアニメーションブロック内のコードをアニメーションから除外するにはどうすればよいですか?

答えて

10

あなたはCATransactionでそのセクションをラッピングし、そのためのアニメーションを無効にすることによって、UIViewのアニメーションブロックのセクションのためのアニメーションを抑制することができるべきである:

[CATransaction begin]; 
[CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];  

// Changes to disable animation for here 
[CATransaction commit]; 
+0

が、これは+ [CATransaction setDisableActionsと同じではありません。 YES]アニメーションブロック内にありますか? –

+0

@Andrew - はい、 '-setDisableActions:'はiPhone OS 3.0とSnow Leopardで追加されました。上記の '-setValue:forKey:'と同じです。私は2.0で使った古いコードからこれを手に入れました。 –

+0

これは、これを共有してくれてうれしいです。また、他の誰かがここに投稿した(そして最後の夜は明らかに削除した)[UIView setAnimationsEnabled:NO]アプローチよりも優れています。このアプローチでは、呼び出し元が設定したアニメーションを含め、すべてのアニメーションを単にオフにしていたためです。 – uliwitness

関連する問題