在SB中控件可以在SB中直接利用kvc 设置一些属性值,不如layerwidth等 但是不能更改和颜色有关的属性因为layerbordercolor是CGColor.通过为CALayer增加属性可以实现在SB中也能用KVC设置layerbordercolor;新建CALayer的分类

@interface CALayer (WjlCALayer)
/**
 *  在SB中设置keypath就可以改变boredercolor的颜色
 */
@property(nonatomic, strong) UIColor *borderColorFromUIColor;
//- (void)setBorderColorFromUIColor:(UIColor *)color;


@implementation CALayer (WjlCALayer)
- (UIColor *)borderColorFromUIColor {
    
    return objc_getAssociatedObject(self, @selector(borderColorFromUIColor));
}
-(void)setBorderColorFromUIColor:(UIColor *)color
{
    objc_setAssociatedObject(self, @selector(borderColorFromUIColor), color, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
    [self setBorderColorFromUI:color];
}
- (void)setBorderColorFromUI:(UIColor *)color
{
    self.borderColor = color.CGColor;
    
}
@end

 

相关文章:

  • 2022-12-23
  • 2021-04-07
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-10-01
  • 2022-12-23
  • 2022-12-23
  • 2022-02-07
  • 2021-11-19
  • 2021-09-01
  • 2021-08-12
相关资源
相似解决方案