要設(shè)置圓角,代碼寫的太麻煩了锐借,要這樣寫:
view.layer.cornerRadius = cornerRadius;
view.layer.masksToBounds = YES;
在storyboard/xib直接設(shè)置勺卢,一般的方法是在User Defined Runtime Attributes
里面加一條屬性layer.cornerRadius
指么,設(shè)置Value這樣酝惧,如下圖:
這樣確實(shí)方便,但是伯诬,每次添加都要寫一遍layer.cornerRadius
晚唇,還是不夠方便。
進(jìn)階版
于是盗似,可以寫一個(gè)UIView的Categorie來去掉這個(gè)步驟哩陕,完成后直接在storyboard/xib設(shè)置圓角數(shù)值即可。
先在.h文件添加屬性:
@property (nonatomic, assign) IBInspectable CGFloat cornerRadx;
...
然后在.m文件添加set和get方法即可赫舒,這同樣是用runtime實(shí)現(xiàn)(別忘了先 import <objc/runtime.h>
) :
- (void)awakeFromNib {
[super awakeFromNib];
self.layer.cornerRadius = self.cornerRadx;
}
static NSString *cornerRadxKey = @"cornerRadxKey";
- (void)setCornerRadx:(CGFloat)cornerRadx {
objc_setAssociatedObject(self, &cornerRadxKey, @(cornerRadx), OBJC_ASSOCIATION_COPY);
}
- (CGFloat)cornerRadx {
return [objc_getAssociatedObject(self, &cornerRadxKey) floatValue];
}
最后悍及,在storyboar/xib中,任意繼承自UIView的控件都會(huì)多一個(gè)Corner Radx
屬性可以設(shè)置了: