我有的:
我有一个层次结构UIView's
和一个CAGradientLayer
用于设置此层次结构的“背景颜色”的层次结构。所以我有这样的事情:
ViewA -> ViewB -> CAGradientLayer
我在做什么:
在某一时刻,我想为frame
ViewA 的(仅它的高度)设置动画。所以它会是这样的:
[UIView animateWithDuration:timeInterval
delay:0
options:UIViewAnimationOptionCurveEaseIn
animations:^{
viewA.frame = newFrame;
}];
问题:
这样做的问题是它CAGradientLayer
不会动画它的框架,它只是改变它的框架,然后 viewA 开始按预期制作动画(通过将模拟器设置为慢动作动画可以清楚地看到)。
我尝试了什么:
我尝试在动画块内执行Apple 建议的UIView
操作,但实际上并没有起作用,因为我仍在此处为帧设置动画:
viewA.frame = newFrame;
我也明白我应该为边界设置动画,而不是框架CALayer
,问题是,我怎样才能为边界设置动画,并且在为 ViewA 的框架设置动画时将其CALayer
排除在动画之外?
我想要的是:
我只想为它的高度变化设置动画,所以我会同时看到viewA
和CAGradientLayer
动画。