单独创建Xib文件的使用
使用情况:在项目过程中创建某些控件的子类不能自动创建xib文件,例如UIView,这时需要将类与xib文件相关联使用。
①首先创建一个空白的xib文件:

屏幕快照 2017-05-27 下午3.25.18.png
②放入一个控件,(eg:放入一个View,此时的View默认是UIView的实例)并且在其上布局(eg:放入一个button)。

屏幕快照 2017-05-27 下午3.34.44.png
③关联类和xib文件中的控件,步骤:(给控件设置Class)-> (在代码中找到xib中的实例,并且使用)

image.png
使用代码如下:
//注意:需要指定frame,如果xib里面有多个控件,则可以用下标0,1...相继取出
//并且MyView中的required init?(coder aDecoder: NSCoder)方法会被调用
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的使用
使用情况:针对于VC来说,创建时可以自带创建xib文件。
①创建一个VC(eg:MyViewController)

image.png
②在Xib中的View中布局,直接在代码中使用即可
代码如下:
//注意:此处可以直接使用init()方法,使用的也是xib中的实例。
//在MyViewController类中的init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?)方法会被调用
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)
}
特别注意
特殊情况:创建ViewController时没有勾选系统创建Xib,此时手动创建空Xib文件,在Xib中加入的需要为ViewController,而不是UIView,其余操作参考(单独创建Xib文件的使用)。