当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
我将Objective-C中的NoImplicitAnimations.h
导入到Swift桥接标题中。
我创建了一个全局常量let _noImplicitAnimations = NoImplicitAnimations()
。
我像这样扩展CALayer
类:
extension CALayer {
func noImplicitAnimations () {
delegate = _noImplicitAnimations
}
}
现在出现了问题。我在创建myLayer.noImplicitAnimations()
后立即使用myLayer
。然而,隐含的动画仍在发生。
答案 0 :(得分:0)
没关系。这确实有效。我在错误的CALayer
上测试它。我的坏!