Swift Xib加載方式

0.新建加載工具類 NibLoadable.swift
3FC21C62-DF40-4777-AB44-2D50D4BC4A5A.png
import UIKit

// 協(xié)議
protocol NibLoadable {
    // 具體實現(xiàn)寫到extension內(nèi)
}

// 加載nib
extension NibLoadable where Self : UIView {
    static func loadFromNib(_ nibname : String? = nil) -> Self {
        let loadName = nibname == nil ? "\(self)" : nibname!
        return Bundle.main.loadNibNamed(loadName, owner: nil, options: nil)?.first as! Self
    }
}
1.新建DemoView
B672AE80-E05E-48A9-9027-64A6C2C1C391.png
2.新建xib文件(點擊文件名會自動將名字補全)
C806390A-9CF0-4BE1-81DA-E0F2006F24F3.png
3.將xib與類名進行關(guān)聯(lián)
A98EABAF-3A86-4239-8D7D-36CDEEFA01EC.png
4.在DemoView中遵循NibLoadable協(xié)議
import UIKit

class DemoView: UIView, NibLoadable {
    // 可自定義屬性    
    var name : String = ""
}
5.然后就可以瘋狂的搞事情了
import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // 加載demoview
        //方法一:
        let demoView = DemoView.loadFromNib()
        demoView.name = "why"
        view.addSubview(demoView)
        
        //方法二:
        let testView = TestView.loadFromNib("")
        testView.age = 10
        
        demoView.name = "why"
    }

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

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,132評論 25 708
  • 江南,多么簡單的二字,卻蘊含著千古柔情,卻養(yǎng)育著多情的人兒。江南的雨,不知下到什么時候才會停,看那片花繁花似錦,在...
    Millington_米靈頓閱讀 985評論 0 3
  • ? 今天立冬了。 立是建立的意思,建立之刻即便開始。 冬本意是終,是結(jié)束,末了的意思,引申為收藏,儲藏,...
    飛得更高翱翔遠(yuǎn)方閱讀 319評論 0 0
  • 白日的忙碌 麻痹了我的思維 沒有你的日子里 我疲倦了身心 夜?jié)u深 褪下了粉塵 帶著迷離眼 Ky吧里的一切照常 我還...
    小糊童Mr閱讀 386評論 0 1