单独创建Xib文件的使用
使用情况:在项目过程中创建某些控件的子类不能自动创建xib
文件,例如UIView
,这时需要将类与xib文件相关联使用。
①首先创建一个空白的xib
文件:
②放入一个控件,(eg:放入一个View
,此时的View
默认是UIView
的实例)并且在其上布局(eg:放入一个button
)。
③关联类和xib
文件中的控件,步骤:(给控件设置Class
)-> (在代码中找到xib
中的实例,并且使用)
使用代码如下:
//注意:需要指定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
)
②在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
文件的使用)。