Swift中自定义视图的xib和控制器视图xib

Swift中自定义视图的xib和控制器视图xib_第1张图片
timg (1).jpeg

这篇文章就介绍用xib去完成界面布局吧。

一个界面如果是很简单的布局格式(例如,登录界面,修改密码,昵称,界面),我们可以采用控制器xib的结构进行布局。

Swift中自定义视图的xib和控制器视图xib_第2张图片
0423C15C-8FE7-4268-8AB5-1A4798DEF52C.png

这种我们可以在创建Controller的时候勾选创建xib文件,这样我们首先需要在xib文件中添加组件,然后添加布局约束,至于布局约束和关联组件到控制器中,这儿就不做介绍了。

主要在弄好了视图后,怎么通过代码显示在界面上。

    override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
        
        super.init(nibName: "YourController", bundle: Bundle.main)
    }
    
    required init?(coder aDecoder: NSCoder) {
        
        fatalError("init(coder:) has not been implemented")
    }

当然如果一个界面中有复杂的也有简单的界面时,而你想把其中的一部分界面用xib的方式,那么:

    class func initialization() -> YourView {
        
        let view = Bundle.main.loadNibNamed("YourView", owner: nil, options: nil)?.first as! YourView
        return view
    }
    
    override func awakeFromNib() {
        
        super.awakeFromNib()
        setUp()
    }

接着我们在控制器中用法是:

    private lazy var headerView : YourView = {
        () -> YourView in
        
        let view = YourView.initialization()
        return view
    }()

    override func viewDidLayoutSubviews() {
        
        super.viewDidLayoutSubviews()        
        headerView.size = CGSize.init(width: view.width, height: RS_SCALE_LENGTH(value: 310))
    }

这样只需要把这个视图添加上去就可以了。

你可能感兴趣的:(Swift中自定义视图的xib和控制器视图xib)