在Storyboard ViewController中导入Nib视图

时间:2016-10-20 15:58:07

标签: ios swift xcode user-interface

Swift 3 - Xcode 8 - iOS10

我有一个带有UIView的xib文件。我想在我的ViewController中导入这个视图。

我的Player.xib

enter image description here

enter image description here

我的故事板结果: enter image description here

我的班级:

@IBDesignable
class EmbedPlayerViewV2: UIView {

    @IBOutlet weak var subTitleLbl: UILabel!

    var view: UIView!

    override init(frame: CGRect) {
        super.init(frame: frame)
        loadViewFromNib()
    }
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        loadViewFromNib()
    }

    func loadViewFromNib() {
        let bundle = Bundle(for: type(of: self))
        let nib = UINib(nibName: "Player", bundle: bundle)
        self.view = nib.instantiate(withOwner: self, options: nil).first as! UIView
        self.addSubview(self.view)
    }

    override func layoutSubviews() {
        subTitleLbl.text = "LOADED"
        // ...
    }
    // ...
}

1 个答案:

答案 0 :(得分:1)

我已经解决了我的问题。

func loadViewFromNib() {
    let bundle = Bundle(for: type(of: self))
    let nib = UINib(nibName: "Player", bundle: bundle)
    self.view = nib.instantiate(withOwner: self, options: nil).first as! UIView
    self.addSubview(view)
    view.leadingAnchor.constraint(equalTo: self.leadingAnchor).isActive = true
    view.trailingAnchor.constraint(equalTo: self.trailingAnchor).isActive = true
    view.topAnchor.constraint(equalTo: self.topAnchor).isActive = true
    view.bottomAnchor.constraint(equalTo: self.bottomAnchor).isActive = true
}

坦克Aaron