У меня есть подкласс CALayer
с пользовательским свойством, объявленным так:
@interface MyLayer : CALayer
@property (nonatomic,retain) NSNumber *customValue;
@end
@implementation MyLayer
@synthesize customValue = _customValue;
@end
Я хочу анимировать это свойство внутри явного CATranasction
, поэтому я настроил делегата с реализованным методом actionForLayer:forKey:
, который возвращает анимацию, однако любые изменения в someMyLayerInstance.customValue
внутри [CATransaction begin] ... [CATransaction end]
не приводят в actionForLayer:forKey
вызове с соответствующим значением ключа.
Тем не менее, обнуление свойства в MyLayer
и внесение изменений в myLayerInstance
путем вызова setValue:forKey:
приводит к , в результате чего actionForLayer:forKey:
будет вызван.
Похоже, что это потому, что CALayer
делает некоторые mojo для кодирования ключа / значения для неопределенных свойств. Как я могу воссоздать это mojo, чтобы я мог объявить свойства в MyLayer
, но делегат анимации все равно должен их наблюдать?