gpt4 book ai didi

iphone - 为什么我的CAGradientLayer为所有更改设置动画?

转载 作者:行者123 更新时间:2023-12-01 17:17:43 24 4
gpt4 key购买 nike

我有一个CAGradientLayer,我想在用户将手指拖到那里时缩放。但是,当我设置框架时,图层会设置为新尺寸。这也发生在其他属性上,包括start / endPoint。

这是一个例子:

_gradient.frame = CGRectMake(0, 480-toHeight, 320, toHeight);

但是,如果我仅在用户拖动10个左右像素时才调用它,则该图层不会简单地跳到新的大小,而是以平滑但快速轻松的动画进行动画处理。我很肯定这不会在动画块中调用。为了进一步调试,我还为同一范围内的 UIView框架设置了动画,但没有设置动画。

我是 CALayers的新手,所以也许我做错了什么。

最佳答案

默认情况下,CALayer的大多数属性都是动画的。您需要禁用这些隐式动画:

[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];
// change layer's properties
_gradient.frame = newFrame;
[CATransaction commit];

Here is a good sample帮助您学习核心动画。

关于iphone - 为什么我的CAGradientLayer为所有更改设置动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7857879/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com