CAGradientLayer
ユーザーがそこに指をドラッグしたときにスケーリングしたいものがあります。ただし、フレームを設定すると、レイヤーは新しいサイズにアニメーション化されます。これは、start/endPointを含む他のプロパティでも発生します。
次に例を示します。
_gradient.frame = CGRectMake(0, 480-toHeight, 320, toHeight);
それでも、ユーザーが10ピクセル程度ドラッグしたときにのみこれを呼び出すと、レイヤーは単に新しいサイズにジャンプするのではなく、スムーズでありながらすばやく簡単なアニメーションでアニメーション化されます。私はこれがアニメーションブロックで呼び出されていないことを確信しています。さらにデバッグするためUIView
に、同じスコープ内のaのフレームもアニメートしますが、アニメートしません。
私は初めてなCALayers
ので、何か間違ったことをしているのかもしれません。