【发布时间】:2012-01-20 02:48:15
【问题描述】:
我有一个带有自定义属性的CALayer 子类,声明如下:
@interface MyLayer : CALayer
@property (nonatomic,retain) NSNumber *customValue;
@end
@implementation MyLayer
@synthesize customValue = _customValue;
@end
我想在显式CATranasction 中为该属性设置动画,因此我设置了一个委托,实现了返回动画的actionForLayer:forKey: 方法,但是对[CATransaction begin] ... [CATransaction end] 内部的someMyLayerInstance.customValue 的任何更改都不会导致在actionForLayer:forKey 中,使用相应的“键”值调用。
但是,在MyLayer 上删除属性并通过调用setValue:forKey: 对myLayerInstance 进行更改确实会导致actionForLayer:forKey: 被调用。
这似乎是因为CALayer 为未定义属性的键/值编码做了一些魔力。如何重新创建此 mojo 以便我可以在 MyLayer 上声明属性,但仍让动画委托观察它们?
【问题讨论】:
标签: iphone ios core-animation key-value-coding