2011-01-30 4 views
0

私はちょうど誰かのための答えを書いていました。それはlayoutSubViewsというメソッドが、(タイマーが起動するたびに)いくつかのレイヤーをアニメーションするたびに呼び出されることが判明しました。私はUIViewのフレームを変更していません。この場合、layoutSubviewsは一度だけ呼び出されるべきではありませんか?- [UIView layoutSubviews];毎回アニメーションで呼ばれる?

誰かがこの

私の答えはここにある起こっている理由を説明することができれば、私は感謝: Object angle based on current time

おかげで、すべての

答えて

0

まず、私はあなたのリンクの答えに同意するか分かりません:UIViewは、基本的にCALayerをラップするだけで、人生をより簡単にする方法を考えれば、レイヤーがビューよりも優れたアプローチであるとは思われません。誰が存在しない場合には

、私はあなたがあなたは、ジオメトリを変更したことのUIKitにを表示され、これらの層を変換するときに、単一のUIViewのサブレイヤとして、あなたの時計層を追加しましたので、何が起こっているかがあると思いメインビューのlayoutSubviewsが呼び出されます。しかし、それは何よりも教育的な推測です。多分誰かがより良いアイデアを持って来るでしょう。

+0

私は、この場合、レイヤーは完全なビューを再描画する必要がないため、レイヤーが優れていると言いました。 (drawRect:CoreGraphicsのメソッドを実装する)レイヤーは軽量ですが、この例ではおそらくそのような違いはありませんが、もっと複雑なケースがあるはずです。私はあなたの推測が正しいかどうかを確認するためにコンテナレイヤーを追加しようとします;) – nacho4d

関連する問題