通过Xib加载CustomViews

1,400 阅读1分钟

在开发项目的时候总是需要创建自定义视图,并复用到多个VC,有时候自定义的视图会非常复杂,纯代码手写的话,既耗时又耗力,本人作为一个可视化编程的拥趸,非常喜欢使用Xib来加载自定义视图。

通常在创建VC的时候,可以选择同时创建Xib,

创建VC选择Xib

但是在创建UIView的时候,是无法同时选择Xib的

创建view无法选择Xib

一般来说,创建View之后,在创建一个同名的Xib文件:CustomViewWithXIB.swift,CustomViewWithXIB.xib

自定义视图与Xib

关联Xib文件与Swift文件

设置Xib文件File's Owner的Class为CustomViewWithXIB

使用File's Owner关联文件

初始化

    override init(frame: CGRect) {
        super.init(frame: frame)
        initialization()
    }
    
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        initialization()
    }
    
    func initialization() {
        let view = Bundle(for: type(of: self)).loadNibNamed("CustomViewWithXIB", owner: self, options: nil)?.first as! UIView
        view.frame = bounds
        addSubview(view)
    }

然后就可以像创建UITableViewCell一样拖拽控件,赋值等。