Swift Xib加载方式
2017-08-03 本文已影响74人
小奉不在乎
0.新建加载工具类 NibLoadable.swift
![](https://img.haomeiwen.com/i4056100/e72d44b697680aaa.png)
import UIKit
// 协议
protocol NibLoadable {
// 具体实现写到extension内
}
// 加载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
![](https://img.haomeiwen.com/i4056100/2e0d2405ee349b26.png)
2.新建xib文件(点击文件名会自动将名字补全)
![](https://img.haomeiwen.com/i4056100/48160d3f3cce700d.png)
3.将xib与类名进行关联
![](https://img.haomeiwen.com/i4056100/647d84707f8d52d5.png)
4.在DemoView中遵循NibLoadable协议
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"
}
}