storyboard實(shí)時(shí)渲染擴(kuò)展的屬性

使用storyboard不僅僅是為了少寫代碼,最重要的是能實(shí)時(shí)預(yù)覽效果,如果有一些界面上細(xì)節(jié)的微調(diào)每次都重啟項(xiàng)目比較浪費(fèi)時(shí)間。

可惜storyboard不是萬能良藥,很多屬性在Inspectable中是沒有的,還是要在代碼中進(jìn)行設(shè)置,后期維護(hù)起來成本也會增加。

不過Xcode還是給我們留下了解決辦法。以圖片圓角為例子,可以用這樣的方式來設(shè)置:


運(yùn)行效果:


但是這不是實(shí)時(shí)渲染啊,運(yùn)行后才可以看到結(jié)果,如果我希望微調(diào)數(shù)據(jù)看效果,還是要設(shè)置一次運(yùn)行一次。

還好Xcode還留給我們更好的方案~流程如下:

1.自定義一個(gè)類,繼承要使用的控件,這里是UIImageView

2.在class外面加入關(guān)鍵字 @IBDesignable

3.將需要實(shí)時(shí)渲染的屬性寫為計(jì)算屬性,加入關(guān)鍵字 @IBInspectable

例如:

import UIKit

@IBDesignable
class MyImageView: UIImageView {

    @IBInspectable var 圓角半徑: CGFloat = 0 {
        didSet {
            self.layer.cornerRadius = 圓角半徑
            self.layer.masksToBounds = 圓角半徑 > 0
        }
    }
    
}

當(dāng)然swift現(xiàn)在中文支持還是很讓我開心的。

4.更改對應(yīng)控件的Custom Class

等待編譯,當(dāng)Designables 顯示Up to date,就說明編譯完成了。

實(shí)時(shí)渲染的效果如下:

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

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,229評論 4 61
  • 2017年11月6日 星期一 天氣晴 貴陽 14℃~26℃ 最近幾天上來貴陽學(xué)習(xí)還是有點(diǎn)不適應(yīng),寫日記都沒之前...
    陳賀雄閱讀 228評論 1 1
  • 人生真的是由某些偶然、無心插柳的事兒串聯(lián)而成,她在前方不遠(yuǎn)處等著你,去邂逅那場為你安排的妙不可言的旅程。我是一名理...
    GTwanwan閱讀 1,758評論 5 5
  • (一) 放暑假了,帶著孩子回到了離別許久的家鄉(xiāng)。趁著傍晚天氣涼爽,帶孩子出去走走,順便讓...
    雅靈看世界閱讀 213評論 0 1