給自定義View在XIB上添加屬性和預覽

在項目中會需要改View的圓角、邊框、陰影等屬性值。一般我們可以用代碼來更改屬性,或者在View的XIB中通過keyPath的方式改變value的值。但是這些方法都不能很方便的直接設置值并直觀的在xib上觀察這些值的引起的View變化。IBInspectableIB_DESIGNABLE很好的解決了這方面的問題


先說說IBInspectable:
以給一個View加圓角來舉例。
新建一個xxView繼承自UIView,給xxView添加一個屬性,并加上IBInspectable修飾

@property (nonatomic,assign) IBInspectable CGFloat cornerRadius;

打開XIB/StoryBoard在上面拖一個view,設置classxxView

01

點擊屬性指示器,可以看到xxView在XIB上多了一個屬性cornerRadius

02

但是這樣運行肯定死不能達到更改view的圓角的效果的,所以這兒還需要修改xxViewcornerRadiussetter方法

-(void)setCornerRadius:(CGFloat)cornerRadius
{
    _cornerRadius = cornerRadius;
    self.layer.cornerRadius = cornerRadius;
}

在xib上修改cornerRadius為50,然后運行,得到了圓角效果:

再看一下身份指示器發現:xxviewkeypath多了一個,所以IBInspectable也是通過keypath實現更改屬性的。


好了IBInspectable介紹完了。再來看下IB_DESIGNABLE
xxView加上 IB_DESIGNABLE

IB_DESIGNABLE
@interface xxView : UIView
@property (nonatomic,assign) IBInspectable CGFloat cornerRadius;
@end

然后再看一下xib文件發現在xib上我們可以直接通過更改屬性來預覽view的變化了。是不是很爽~


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容