直接貼代碼吧
- 1 摘刑、在UIView的擴展中的.h中添加(別說你的項目中沒有對UIView進行擴展過)
@property (nonatomic)IBInspectable CGFloat cornerRadius;
@property (nonatomic)IBInspectable UIColor *borderColor;
@property (nonatomic)IBInspectable CGFloat borderWidth;
- 2、.m 中
static char layerCornerRadius = 0;
static UIColor *keyOfColor;
static float keyOfWidth;
-(void)setCornerRadius:(CGFloat)cornerRadius{
objc_setAssociatedObject(self, &layerCornerRadius,[NSString stringWithFormat:@"%f",cornerRadius],OBJC_ASSOCIATION_COPY_NONATOMIC);
self.layer.cornerRadius = cornerRadius;
self.layer.masksToBounds = cornerRadius > 0?true:false;
}
- (CGFloat)cornerRadius {
return [objc_getAssociatedObject(self, &layerCornerRadius)floatValue];
}
-(void)setBorderColor:(UIColor *)borderColor{
objc_setAssociatedObject(self, &keyOfColor, borderColor, OBJC_ASSOCIATION_COPY_NONATOMIC);
self.layer.borderColor = borderColor.CGColor;
}
-(UIColor *)borderColor{
// return [objc_getAssociatedObject(self, &keyOfColor)];
return [objc_getAssociatedObject(self, &keyOfColor)CGColor];
}
-(void)setBorderWidth:(CGFloat)borderWidth{
objc_setAssociatedObject(self, &keyOfWidth, [NSString stringWithFormat:@"%f",borderWidth], OBJC_ASSOCIATION_COPY_NONATOMIC);
self.layer.borderWidth = borderWidth;
}
-(CGFloat)borderWidth{
return [objc_getAssociatedObject(self, &keyOfWidth)floatValue];
}
然后編譯以后在xib中棋嘲,你就能夠看到如下的選項了
這樣以后就不需要在xib中通過keypath來進行設(shè)置view的邊框了
WechatIMG72.jpeg