Ios 禁用CALayer隐式动画

Ios 禁用CALayer隐式动画,ios,objective-c,swift,core-animation,calayer,Ios,Objective C,Swift,Core Animation,Calayer,当CALayer的属性发生更改时,下面的类试图阻止任何隐式动画的发生 // NoImplicitAnimations.h #import <Foundation/Foundation.h> #import <QuartzCore/QuartzCore.h> @interface NoImplicitAnimations : NSObject - (id<CAAction>) actionForLayer:(CALayer *)layer forKey:(

CALayer
的属性发生更改时,下面的类试图阻止任何隐式动画的发生

// NoImplicitAnimations.h

#import <Foundation/Foundation.h>
#import <QuartzCore/QuartzCore.h>

@interface NoImplicitAnimations : NSObject

- (id<CAAction>) actionForLayer:(CALayer *)layer forKey:(NSString *)key;

@end



// NoImplicitAnimations.m

#import "NoImplicitAnimations.h"

@implementation NoImplicitAnimations

- (id<CAAction>) actionForLayer:(CALayer *)layer forKey:(NSString *)key {
  return (id)[NSNull null];
}

@end
现在问题来了。我在创建
myLayer
之后立即使用
myLayer.noImplicitAnimations()
。然而,隐式动画仍在发生


我做错什么了?别客气。这确实有效。我在错误的
CALayer
上测试它。我的错

extension CALayer {
  func noImplicitAnimations () {
    delegate = _noImplicitAnimations
  }
}