swift4.2使用xib创建自定义view
2019-03-04 本文已影响0人
Mr_Coii
以前使用OC创建自定义的view步骤相信都知道怎么弄,最近在写swift遇到一些以为很简单的实际上还是和OC不同的,所以写下来记录(如有错误,欢迎指正)
1.创建一个自定义的view继承自UIView
![](https://img.haomeiwen.com/i2385926/a12407d5f814c71b.png)
![](https://img.haomeiwen.com/i2385926/bee650c77a6e43db.png)
2.第二步就是创建一个同名的xib文件,并手动关联(如果勾选的是View就可以忽略下一步了)
![](https://img.haomeiwen.com/i2385926/6ddddaba0d9ef525.png)
这里创建的新的xib文件是没有view的,需要拖拽一个view上去
![](https://img.haomeiwen.com/i2385926/39ed9983d58aee9e.png)
![](https://img.haomeiwen.com/i2385926/4724b7d56d2d89ec.png)
注意:修改的是 MyView.xib 中 File’s Owner 的 Custom Class,不要修改成 MyViewr.xib 里 View 的 Custom Class 了。
![](https://img.haomeiwen.com/i2385926/f1ffb5e7992048a0.png)
添加个lable
![](https://img.haomeiwen.com/i2385926/d4f5a6272cc0ea3c.png)
3.下面就是代码部分了
import UIKit
class MyView: UIView {
@IBOutlet var contentView: UIView!
override init(frame: CGRect) {
super.init(frame: frame)
// 加载xib
contentView = (Bundle.main.loadNibNamed("MyView", owner: self, options: nil)?.last as! UIView)
// 设置frame
contentView.frame = frame
// 添加上去
addSubview(contentView)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
实现效果:
![](https://img.haomeiwen.com/i2385926/a687d08e63318a4f.png)