Вы можете создать подкласс CALayer
и переопределить actionForKey:
,
- (id <CAAction>) actionForKey: (NSString *) key
{
if ([key isEqualToString: @"contents"])
return nil;
return [super actionForKey: key];
}
Этот код отключает встроенную анимацию для свойства contents
.
В качестве альтернативы, вы можете добиться того же эффекта, реализовав метод делегата слоя
- (id <CAAction>) actionForLayer: (CALayer *) layer forKey: (NSString *) key
{
if (layer == myLayer) {
if ([key isEqualToString: @"contents"])
return nil;
return [[layer class] defaultActionForKey: key];
}
return [layer actionForKey: key];
}