gpt4 book ai didi

iphone - 对 CALayer 子类的自定义属性进行动画处理

转载 作者:行者123 更新时间:2023-12-03 18:15:26 25 4
gpt4 key购买 nike

我有一个 CALayer 子类 MyLayer,它有一个名为 myInt 的 NSInteger 属性。我真的很想通过 CABasicAnimation 为这个属性设置动画,但 CABasicAnimation 似乎只适用于所谓的“可动画”属性(边界、位置等)。我可以重写某些内容以使我的自定义 myInt 属性可动画化吗?

最佳答案

是的,这是可能的(不过,我相信只有在最新的 Core Animation 版本中,即 iPhone 3.0+ 和 OS X 10.6+)。

  1. 使您的属性动态化,以便 CA 为您实现访问器:

    @dynamic myInt;
  2. 告诉图层属性的改变需要重绘:

    + (BOOL)needsDisplayForKey:(NSString*)key {
    if ([key isEqualToString:@"myInt"]) {
    return YES;
    } else {
    return [super needsDisplayForKey:key];
    }
    }
  3. drawInContext: 方法中使用 myInt 的值。现在,当您为 myInt 设置动画时,Core Animation 将为动画的每个步骤插入值,并重复要求图层自行绘制。

  4. 如果您还想为此属性启用隐式动画,还需重写 actionForKey:

关于iphone - 对 CALayer 子类的自定义属性进行动画处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2395382/

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