作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当 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
后立即使用 myLayer.noImplicitAnimations()
。然而,隐式动画仍在发生。
最佳答案
没关系。这确实有效。我在错误的 CALayer
上测试它。我的错!
关于ios - 禁用 CALayer 隐式动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25830050/
我是一名优秀的程序员,十分优秀!