Следующий класс пытается остановить любые неявные анимации, возникающие при изменении свойства 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
Я импортирую NoImplicitAnimations.h
в мой заголовок Objective-C в Swift.
Я создаю глобальную константу let _noImplicitAnimations = NoImplicitAnimations()
.
Я расширяю класс CALayer
следующим образом:
extension CALayer {
func noImplicitAnimations () {
delegate = _noImplicitAnimations
}
}
Теперь возникает проблема. Я использую myLayer.noImplicitAnimations()
сразу после создания myLayer
. Тем не менее, неявные анимации все еще происходят.