今天做昨天说到file owner的详细实作方法
注意:这边的Class是说file owner的类型,而非与MainView产生连结要产生连结要在MainView.swift档案中,添加程序码去绑定
那麽MainView.swift里面应该要有些什麽
让MainView.swift知道我们xib里面有些什麽元件他要负责显示
什麽是NibLoadable?
是一个方便使用的框架,可以负责用来载入Nib档案
该如何使用NibLoadable?
创立一个NibLoadble.swift档案,输入以下
protocol NibOwnerLoadable: AnyObject {
static var nib: UINib { get }
}
// MARK: - Default implmentation
extension NibOwnerLoadable {
static var nib: UINib {
UINib(nibName: String(describing: self), bundle: Bundle(for: self))
}
}
// MARK: - Supporting methods
extension NibOwnerLoadable where Self: UIView {
func loadNibContent() {
guard let views = Self.nib.instantiate(withOwner: self, options: nil) as? [UIView],
let contentView = views.first else {
fatalError("Fail to load \(self) nib content")
}
self.addSubview(contentView)
contentView.translatesAutoresizingMaskIntoConstraints = false
contentView.topAnchor.constraint(equalTo: topAnchor).isActive = true
contentView.bottomAnchor.constraint(equalTo: bottomAnchor).isActive = true
contentView.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true
contentView.trailingAnchor.constraint(equalTo: trailingAnchor).isActive = true
}
}
这部分是参考Jeremy Xue大神,参考连结附在下面
MainView.swift透过继承NibOwnerLoadable的这个Class
使用这个名字为loadNibContent的protocol 来绑定名字与自身相同的xib档案
为了让loadNibContent能够使用,我们在初始化的状态下调用loadNibContent
Swift- 创建自定义视图
Understanding Custom UIView In-depth: Setting File Owner vs custom class
Terraform 前言 今天介绍一下可以快速建立GCP各服务的套件Terraform,那麽Terr...
public 公开方法 公开方法没有任何存取限制,可以被该类别或是子层类别的实体呼叫。 一般而言当你...
USB Type-C的工作原理与技术分析 (一) USB 3.1 基本规格 图1.历代USB规格 ↑...
是否该用云端平台 在正式使用k8s的时候,部署k8s最好的情况是使用云端平台。 一来机器规格可以依照...
本篇同步发布於个人Blog: [PoEAA] Data Source Architectural P...