swift - 使用协议实现view的nib加载

  • 创建一个 Swift File 文件实现 NibLoadable 协议
import UIKit

protocol NibLoadable {

}

extension NibLoadable where Self : UIView {
    static func loadFromNib(_ nibname : String? = nil) -> Self {
        let loadName = nibname == nil ? "\(self)" : nibname!
        return Bundle.main.loadNibNamed(loadName, owner: nil, options: nil)?.first as! Self
    }
}
  • 需要使用该协议的view需遵守该协议
import UIKit

class DemoView: UIView, NibLoadable {
    var name : String = ""
}
  • nib初始化方法
let demoView = DemoView.loadFromNib()
或
let demoView = DemoView.loadFromNib("DemoView")
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容