gpt4 book ai didi

ios - 如何为 CALayer 的 'position' 属性添加隐式动画?

转载 作者:行者123 更新时间:2023-11-29 04:45:51 26 4
gpt4 key购买 nike

**注意:这适用于 iOS,而不是 OS X,因此不会自动设置隐式动画。

我正在尝试将隐式动画添加到 CALayer 的位置属性。

我的(不正确的)代码是这样的:

NSMutableDictionary * actions = [self.view.layer.actions mutableCopy ] ;
if ( !actions ) { actions = [ NSMutableDictionary dictionary ] ; }

CABasicAnimation * anim = [ CABasicAnimation animationForKeyPath:@"position" ] ;

[ actions setValue:anim forKey:@"position" ] ;
self.view.layer.actions = actions ;

我的问题是,我应该在这种情况下使用哪种动画(上面的 anim 属性),即 CABasicAnimationCATransition 以及我应该如何配置它?

感谢

最佳答案

隐式动画只需设置位置属性(即 self.view.layer.position = <new position>; )即可触发,Quartz 将使用您当前的 CATransaction 处理其余部分。设置。

如果您想使用显式动画(您似乎正在尝试这样做),我会使用 CABasicAnimation 并执行类似的操作。

    self.view.layer.position = <new position>;
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
animation.duration = <duration>;
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
animation.fromValue = <current position>;
animation.toValue = <new position>;
[line addAnimation:animation forKey:@"position"];

关于ios - 如何为 CALayer 的 'position' 属性添加隐式动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9652482/

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