Ios 如何在以干净的方式更改CAGradientLayer特性时防止动画

Ios 如何在以干净的方式更改CAGradientLayer特性时防止动画,ios,objective-c,Ios,Objective C,因此,我想防止在更改CAGradientLayer属性(如颜色)时发生动画。 我发现: 好像我们在用撬棍打开一个啤酒罐,难道没有一种方法可以做到这一点,而不不断地包装死亡动画调用的变化吗?一种更干净的方法?多亏了大卫,我才明白了 -(id<CAAction>) actionForLayer:(CALayer *)layer forKey:(NSString *)event { if(layer == self.mylayer) { return (id<

因此,我想防止在更改CAGradientLayer属性(如颜色)时发生动画。 我发现:


好像我们在用撬棍打开一个啤酒罐,难道没有一种方法可以做到这一点,而不不断地包装死亡动画调用的变化吗?一种更干净的方法?

多亏了大卫,我才明白了

-(id<CAAction>) actionForLayer:(CALayer *)layer forKey:(NSString *)event {
    if(layer == self.mylayer) {
        return (id<CAAction>)[NSNull null];
    }
    return nil;
}
-(id)actionForLayer:(CALayer*)layer-forKey:(NSString*)事件{
if(layer==self.mylayer){
返回(id)[NSNull];
}
返回零;
}