button storyboard、xib中屬性實(shí)時渲染

先上效果

自定義button實(shí)時渲染

操作:

  • 1 引入YCButton.h,.m文件 或 自定義
  • 2 拖個button到面板,將controller改成YCButton,
  • 3 之后在屬性面板便可以看到自定義屬性,默認(rèn)邊框效果是關(guān)閉的,此時其他自定義屬性即使設(shè)置了也不會起作用,必須先開啟邊框,邊框?qū)挾饶J(rèn)是1,顏色lightgray
  • 4 圓角效果默認(rèn)關(guān)閉,開啟后默認(rèn)圓角值是10,改變屬性會實(shí)時顯示效果,其他button屬性都可以設(shè)置

自定義屬性:

Board Enable: 是否開啟邊框, 默認(rèn)關(guān)閉 (必須開啟其他屬性才能生效)
Board Color: 邊框顏色, 默認(rèn)淺灰色
Board With: 邊框?qū)挾龋? 默認(rèn)為1
Masks To Bounds: 是否開啟圓角, 默認(rèn)關(guān)閉 (必須開啟,圓角值才能生效)
Corner Radius: 圓角值, 默認(rèn)為10

實(shí)現(xiàn)原理:

IB_DESIGNABLE

在定義類的前面加上IB_DESIGNABLE宏,確保該控件在xib或storyboard上可以實(shí)時渲染

IBInspectable

在定義類的屬性前面加上IB_DESIGNABLE宏,確保該屬性在xib或storyboard上可以展示

代碼:YCButtonDemo

教程:如何設(shè)計(jì)一個 iOS 控件?(iOS 控件完全解析)

我做的改變:
如果只是單純的要屬性值和實(shí)時渲染,直接覆寫setter方法便可以;為了控件初始化后具有默認(rèn)效果,我重寫了- (void)drawRect:(CGRect)rect 方法,該方法在uitbutton中會在屬性的set方法執(zhí)行完后再執(zhí)行,也就是說,我在所有屬性拿到值后做了自己的處理邏輯。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容