いくつかのカスタム描画されたサブレイヤー (CAShapeLayer マスクを含むいくつかの CAGradientLayers など) を持つ UIView があります。UIView アニメーション メソッドを使用して境界をアニメーション化しています (幅と高さの両方を増やしています)。
[UIView animateWithDuration:2 delay:0 options:UIViewAnimationOptionCurveEaseOut|UIViewAnimationOptionAutoreverse|UIViewAnimationOptionRepeat animations:^{
CGRect bounds = myView.bounds;
bounds.size.width += 20;
bounds.size.height += 20;
myView.bounds = bounds;
} completion:nil];
サブレイヤーがアニメーションとして再描画されないという事実を除いて、これは正常に機能します。これを行う最善の方法は何ですか?すべてのサブレイヤーで境界の変更を検出し、setNeedsDisplay を呼び出すキー値を設定する必要がありますか?