swift Xib的可加载视图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift Xib的可加载视图相关的知识,希望对你有一定的参考价值。

class LoadableView: UIView {
  override init(frame: CGRect) {
    super.init(frame: frame)
    fromNib()
  }
  
  required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    fromNib()
  }
}
extension UIView {
  @discardableResult
  func fromNib<T: UIView>(withName name: String?) -> T? {
    guard let name = name, let view = Bundle.main.loadNibNamed(name, owner: self, options: nil)?[0] as? T else {
      return nil
    }
    fitted(view: view)
    return view
  }
  
  @discardableResult
  func fromNib<T: UIView>() -> T? {
    let name = String(describing: type(of: self))
    return fromNib(withName: name)
  }
  
  func fitted(view: UIView) {
    self.addSubview(view)
    
    view.frame = bounds
    view.autoresizingMask = [.flexibleWidth, .flexibleHeight];
  }
}
class DashBoardView: LoadableView {}

以上是关于swift Xib的可加载视图的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Objective-C 控制器中以编程方式加载用 swift 编写的自定义 XIB 视图

将 Xib 的大小调整为 swift 4 的屏幕大小

使用 Swift 3 Xcode 8 加载时缺少自定义 XIB

如何使 xib 子视图与 Swift 中的超级视图交互?

如何在swift中按下按钮从另一个xib文件加载另一个xib文件

从 Textfield.inputview 加载 xib UIView