类方法
+ (instancetype)layer
便捷创建图层函数。
示例代码:
CALayer *layer = [CATextLayer layer];
+ (nullable id)defaultValueForKey:(NSString *)key
重写修改CALayer或其子类属性的默认值,key为属性名称,如果没有该属性则返回nil。
示例:
创建一个类XPQLayer继承自CALayer,重写defaultValueForKey:
+(id)defaultValueForKey:(NSString *)key {
if ([key isEqualToString:@"anchorPoint"]) {
// anchorPoint的原默认值为(0.5, 0.5)
return [NSValue valueWithCGPoint:CGPointMake(1.0, 1.0)];
}
else {
return [super defaultValueForKey:key];
}
}
然后创建一个XPQLayer的实例,获取anchorPoint的默认值
XPQLayer *layer = [XPQLayer layer];
NSLog(@"x:%f y:%f", layer.anchorPoint.x, layer.anchorPoint.y);
// 输出x:1.000000 y:1.000000
+ (BOOL)needsDisplayForKey:(NSString *)key
需要子类重写,当CALayer或其子类属性被修改时调用此方法。key为修改的属性名,当返回值为YES时系统自动调用-display 方法。
示例:
创建一个类继承自CALa