我有一个带有几个自定义绘制子层的UIView(一些带有CAShapeLayer掩码的CAGradientLayers等).我正在使用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?