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)系作者