iOS开发iOS 开发iOS开发

Xib的使用总结

2017-05-27  本文已影响51人  Better_奔

单独创建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文件的使用)。

上一篇下一篇

猜你喜欢

热点阅读