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
}
}