CAShapeLayerは、インタフェースの回転を減速します
-
19-09-2019 - |
質問
私は、元のビューのCAShapeLayer
にサブレイヤとして追加されますCALayer
へのビューから、いくつかのカスタム描画コードを移動しようとしています。また、これはうまく機能するが、デバイスを回転させたときに、アニメーションは、吃音を開始し、例えばまったくスムーズではない - あなただけの間で最大1つのフレームで、元の向きでフレームと、最終的なオリエンテーションを参照してください。スライドインおよび対応するUIViewController
のスライドアウトアニメーションも(ただしそれほど)。
CAShapeLayer
がpath
の一方CGPathAddRect
でいる、そのopaque
がopacity
と1.0f
が不透明な青色に設定されている、fillColor
するように設定されている。
drawRect
方法で直接パスを描画するときに、、しかし、アニメーションは 滑らかです。だから私はそれが回転中にアニメ化されてCAShapeLayer
とは何かを持っているとします。
あなたはそれらのぎくしゃくを取り除くか、アニメーション化するときだけCAShapeLayer
を隠す取得するいずれかの方法を教えてもらえますか?私は(それがビューを回転させながら、私の試みでアニメーションされていません)。そのパスをアニメーション化するCGPath
の能力に依存しているため、単に直接CAShapeLayer
sを描画するために戻って得ることは私にはオプションではありません。
/更新:回転UIViewController
sビューはそのCAGradientLayer
(背景として傾斜層と、例えば図)としてlayerClass
のサブクラスを有するビューが含まれている場合、これはまた起こる
乾杯
MrMage
解決 2
に思えます。
他のヒント
まあ非表示プロパティがあり、あなたがして、アニメーションを行うCAShapeLayer
を隠すことができます。それが回転している間、あなたはそれを見ないように、そして、CAShapeLayer
をアンが、隠しメソッドを呼び出し、それがスムーズでなければなりません。