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的可加载视图的主要内容,如果未能解决你的问题,请参考以下文章