單獨(dú)創(chuàng)建Xib文件的使用
使用情況:在項(xiàng)目過(guò)程中創(chuàng)建某些控件的子類不能自動(dòng)創(chuàng)建xib文件,例如UIView,這時(shí)需要將類與xib文件相關(guān)聯(lián)使用。
①首先創(chuàng)建一個(gè)空白的xib文件:

屏幕快照 2017-05-27 下午3.25.18.png
②放入一個(gè)控件,(eg:放入一個(gè)View,此時(shí)的View默認(rèn)是UIView的實(shí)例)并且在其上布局(eg:放入一個(gè)button)。

屏幕快照 2017-05-27 下午3.34.44.png
③關(guān)聯(lián)類和xib文件中的控件,步驟:(給控件設(shè)置Class)-> (在代碼中找到xib中的實(shí)例,并且使用)

image.png
使用代碼如下:
//注意:需要指定frame,如果xib里面有多個(gè)控件,則可以用下標(biāo)0,1...相繼取出
//并且MyView中的required init?(coder aDecoder: NSCoder)方法會(huì)被調(diào)用
override func viewDidLoad() {
super.viewDidLoad()
let myView = Bundle.main.loadNibNamed("PageView", owner: nil, options: nil)?[0] as! MyView
myView.frame=view.bounds
view.addSubview(myView)
}
自帶xib的Viewcontroller的使用
使用情況:針對(duì)于VC來(lái)說(shuō),創(chuàng)建時(shí)可以自帶創(chuàng)建xib文件。
①創(chuàng)建一個(gè)VC(eg:MyViewController)

image.png
②在Xib中的View中布局,直接在代碼中使用即可
代碼如下:
//注意:此處可以直接使用init()方法,使用的也是xib中的實(shí)例。
//在MyViewController類中的init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?)方法會(huì)被調(diào)用
override func viewDidLoad() {
super.viewDidLoad()
let myVC=MyViewController.init(nibName: "MyViewController", bundle: Bundle.main)
//let myVC=MyViewController.init();
myVC.view.frame=view.bounds
view.addSubview(myVC.view)
}
特別注意
特殊情況:創(chuàng)建ViewController時(shí)沒(méi)有勾選系統(tǒng)創(chuàng)建Xib,此時(shí)手動(dòng)創(chuàng)建空Xib文件,在Xib中加入的需要為ViewController,而不是UIView,其余操作參考(單獨(dú)創(chuàng)建Xib文件的使用)。