Xib的使用总结

作者: Better_奔 | 来源:发表于2017-05-27 17:13 被阅读51次

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

    相关文章

      网友评论

        本文标题:Xib的使用总结

        本文链接:https://www.haomeiwen.com/subject/sovqfxtx.html