7

いくつかのカスタム描画されたサブレイヤー (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 を呼び出すキー値を設定する必要がありますか?

4

2 に答える 2