Rya*_*yan 1 iphone objective-c calayer ios cagradientlayer
我有一个CAGradientLayer我想缩放的用户拖动手指.但是,当我设置框架时,图层会动画为新尺寸.其他属性也会发生这种情况,包括start/endPoint.
这是一个例子:
_gradient.frame = CGRectMake(0, 480-toHeight, 320, toHeight);
Run Code Online (Sandbox Code Playgroud)
然而,如果我只在用户拖动10个左右的像素时调用它,则该图层不会简单地跳转到新的大小,而是以平滑但快速缓动的动画进行动画制作.我很肯定这不是在动画块中调用的.为了进一步调试,我还UIView为同一范围内的a框架设置了动画,并且没有动画.
我是新手CALayers,所以也许我做错了什么.
Dav*_*eyl 10
默认情况下,CALayer的大多数属性都是动画的.您需要禁用这些隐式动画:
[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];
// change layer's properties
_gradient.frame = newFrame;
[CATransaction commit];
Run Code Online (Sandbox Code Playgroud)
这是一个很好的示例,可以帮助您学习核心动画.
| 归档时间: |
|
| 查看次数: |
634 次 |
| 最近记录: |