步骤
1.创建一个继承自UIView的view
2.创建Xib文件
![](https://img.haomeiwen.com/i2670204/442f857b579aaa57.png)
3.关联文件
![](https://img.haomeiwen.com/i2670204/5530fcb0217ad895.png)
4.运用
![](https://img.haomeiwen.com/i2670204/b205244d40789dad.png)
bug解决
如果
self.headerView = nib.instantiateWithOwner(self, options: nil).first as! FilmDetailHeaderView
运行报错,就将继承自UIView的view的名字和关联名字改其他的运行一遍,然后再改回来
更好的方式:
1.创建一个继承自UIView的view
2.创建Xib文件
3.关联文件(选中File's Owner,将class设置为创建的view的名字)
![](https://img.haomeiwen.com/i2670204/2f6b469ca84eae98.png)
4.将整个view拖到文件关联
![](https://img.haomeiwen.com/i2670204/91db3902be48303a.png)
5.文件内代码:
import UIKit
class APNView: UIView {
@IBOutlet var contentView: UIView!
override init(frame: CGRect) {
super.init(frame: frame)
self.initialFromXib()
}
required init?(coder aDecoder: NSCoder) {
//fatalError("init(coder:) has not been implemented")
super.init(coder: aDecoder)
self.initialFromXib()
}
func initialFromXib() {
let bundle = Bundle(for: type(of: self))
let nib = UINib(nibName: "APNView", bundle: bundle)
contentView = nib.instantiate(withOwner: self, options: nil)[0] as! UIView
contentView.frame = bounds
addSubview(contentView)
}
}
6.运用
运用方法和系统API提供的UIView方法相同,初始化方法都一样
网友评论