Rui*_*res 7 iphone core-animation calayer uiview ios
是)我有的:
我有UIView's一个层次结构和一个CAGradientLayer用于设置此层次结构的"背景颜色"的层次结构.所以我有这样的事情:
ViewA - > ViewB - > CAGradientLayer
我在做什么:
有一次,我想要为frameViewA 设置动画(只有它的高度).所以它会是这样的:
[UIView animateWithDuration:timeInterval
delay:0
options:UIViewAnimationOptionCurveEaseIn
animations:^{
viewA.frame = newFrame;
}];
Run Code Online (Sandbox Code Playgroud)
问题:
这个问题是它CAGradientLayer不会为它的框架设置动画,它只是改变它的框架,然后viewA开始按预期动画(通过将模拟器设置为慢动作动画可以清楚地看到这一点).
我尝试了什么:
我试图做什么苹果建议在这里,通过做它里面UIView动画块,但它实际上并没有工作,因为我仍然在这里动画帧:
viewA.frame = newFrame;
Run Code Online (Sandbox Code Playgroud)
我也明白我应该为边界设置动画,而不是框架CALayer,问题在于,我如何设置动画边界,并且在动画ViewA的框架时将其留CALayer在动画之外?
我想要的是:
我只想动画它高度的变化,所以我会同时看到动画viewA和CAGradientLayer动画.
首先,请阅读本文。
尝试将视图动画代码与图层动画一起显式封装。不要指望图层会自动生成动画。由于您正在处理定位,因此您需要进行更改graidentlayer.bounds。
如果这不起作用,请在动画代码之前尝试以下操作:
[CATransaction begin];
[CATransaction setDisableActions: NO];
[CATransaction commit];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2178 次 |
| 最近记录: |