我正在CAGradientLayer
派生类上创建自定义动画属性,该类必须更改CAGradientLayer
基类上其他内置的可动画属性,并且想知道最佳方法是什么。目前我正在更新显示方法中的依赖属性:
@implementation CustomGradientLayer
@dynamic myCustomProperty;
+ (BOOL) needsDisplayForKey: (NSString*)aKey
{
BOOL needsDisplay = [aKey isEqualToString: @"myCustomProperty"];
if (!needsDisplay)
{
needsDisplay = [super needsDisplayForKey: aKey];
}
return needsDisplay;
}
- (void) display
{
CGFloat myCustomProperty = [self.presentationLayer myCustomProperty];
[CATransaction begin];
[CATransaction setDisableActions: YES];
// Update dependant properties on self
[CATransaction commit];
[super display];
}
是否可以安全地更新自定义属性设置器中的依赖属性,而不会影响基础CALayer
魔法?
答案 0 :(得分:0)
我找到了解决方案,但对于任何感兴趣的人,您都可以使用以下方法而不会干扰CALayar的内容:
- (void) didChangeValueForKey: (NSString*)aKey (void) didChangeValueForKey: (NSString*)aKey
{
// Update dependent properties
}