自定义控件

自定义控件可以是任何控件的子类,为了方便就用UIView做例子

首先新建一个xib文件,xib文件就是一个部分的storyboard文件,可以设计任意画面

拖入两个label

然后新建一个swift类,继承于UIView

然后将UIView的Files's Owner中的Custom Class换成新建的类 注意不是直接制定View的类,而是制定File's Owner的类
将需要的控件关联到类中,注意整个View也要拖入
然后在类中重写awakeFromNib方法

1
2
3
4
5
6
 //导入布局文件
 Bundle.main.loadNibNamed("CustomView", owner: self, options: nil)
 //设置view画面的大小和位置
 view.frame = CGRect.init(x: 0, y: 0, width: frame.size.width, height: frame.size.height)
 //将view添加到自定义控件的画面中
 self.addSubview(view)

如果想要在初始化时做些操作也可以重写init方法,但是必须也要写一个 required init方法,如下

使用时只要在需要的画面中拖入自定义控件的父类,然后将Custom Class换成自定义类即可 这里的父类是UIView,所以拖入的是UIView控件

然后将控件拖入ViewController就能进行操作了,最后效果如下