iPhoneフリップ移行 - Iは、ハーフウェイポイントで通知を受けることができます

StackOverflow https://stackoverflow.com/questions/2000684

質問

私はアイテムのセットのいずれかを描画するための単一のUIViewを持っています。それは、私の1つのUIViewのサブクラスは、正方形、円形、または、例えば、三角形を描くように告げすることができますされます。

UIViewのは中間点で異なる形を描くように、私はそのビューを反転への移行をしたいのですが、私は別のビューへの移行てるように見えますが、実際に私はちょうど再描画しています遷移の中間点で単一のビュー

これを行う方法は、二つの異なるUIViewsを使用して、アニメーションブロックでそれらをスワップアウトに頼ることなく、ありますか?私はスワップメカニズムを使用しなければならないものをrejigすることは少し不器用になります。

理想的には私が必要とするすべてのアニメーションは中間点にあるいくつかのコールバックまたは通知があり、その後、私は、新しい形状のビューを再描画することができます。

任意の助けてくれてありがとう!

役に立ちましたか?

解決

あなたはフリップアニメーションの中点を知っていたとしても、

、私は何をするだろうビュー半ばアニメーションの内容を再描画信じていません。私は、ビューのレイヤの内容は、アニメーションの開始時にキャッシュされ、アニメーションの進行に伴って変化していないと思います。また、あなたのビューでは、その背後にある別のビューを持っていなかった場合は、アニメーションの終わりに、左から右へ、反転してしまうでしょう。

カスタムアニメーションとしてこれを実行したい場合は、

、あなたはマイク・リーの<のhref = "http://atomicwang.org/motherfucker/Index/B4E5D81C-A9A0-403C-B7A3のようなものを使用して、2つの半分にこれを破ることができ-62FEB81DE777.html "のrel = "nofollowをnoreferrer">私は<のhrefに記述キツネザルフリップ実装する =" https://stackoverflow.com/questions/372018/widget-flip-behavior-in-core-アニメーション - ココア/ 372419#372419" >この回答する。アニメーションの前半の後、あなたは、ビューの内容を再描画とアニメーションを完了し、あなたはスタート地点バック終わる可能性があります。

しかし、私には遷移に応答してビューを切り替えない方が不器用なようです。それは確かにやるべきことがたくさんより多くのコードになります。

他のヒント

あなたは、このようになめらかをしようとすることができます。たとえば、あなたのanimationDurationプロパティが2.0fに設定されています。そう、ハーフウェイポイントが1秒であるので、あなたが使用することができます。

  

[自己performSelector:@selector(yourCallbackMethod)withObject:afterDelayゼロ:1.0F];

私はあなたがこれを行うことができることを知っている唯一の方法は、Core Animationのを使用してアニメーションを再作成し、タイマーを使用してプレゼンテーション層でアニメーションを監視することです。あなたが明示的にそれを監視する必要があるので、コアアニメーションレイヤで使用可能なKVOはありません。

言い換えれば、それはおそらく、それだけの価値はありません。私はあなたの問題を解決する別の方法を考え提案します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top