在项目中经常需要给view button 等 加边框 每次都要自己堆代码 感觉很费劲
self.addWayBtn.layer.borderWidth=1;
self.addWayBtn.layer.borderColor=[UIColor colorWithRed:255/255.0 green:111/255.0 blue:1/255.0 alpha:1].CGColor;
这两句代码 写了一遍又一遍 实在是烦!既然圆角都可以用layer.cornerRadius在xib中keypath中写出那么为什么不把layer.borderColor也写进去呢
因为keypath 里边只有color所以我们就要用到catagory了
这里提供两种方式 都可以做到
方法1:
.h
@property (nonatomic,strong)UIColor*borderUIColor;
.m
-(void)setBorderUIColor:(UIColor *)color
{
self.borderColor=color.CGColor;
}
-(UIColor*)borderUIColor
{
return [UIColor colorWithCGColor:self.borderColor];
}
此时就可以使用属性啦:
方法2:
.h
@property(nonatomic, strong) UIColor *borderColorFromUIColor;
- (void)setBorderColorFromUIColor:(UIColor *)color;
.m
(记得引入头文件#import <objc/runtime.h>)
- (UIColor *)borderColorFromUIColor {
return objc_getAssociatedObject(self, @selector(borderColorFromUIColor));
}
-(void)setBorderColorFromUIColor:(UIColor *)color
{
objc_setAssociatedObject(self, @selector(borderColorFromUIColor), color, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
[self setBorderColorFromUI:[self borderColorFromUIColor]];
}
- (void)setBorderColorFromUI:(UIColor *)color
{
self.borderColor = color.CGColor;
NSLog(@"%@", color);
}
此时也可以使用了
你get到了么?