UITableViewCell作为来自XIB的UIView

Jui*_*uit 3 uitableview xib uiview nscoder ios

CustomTableViewClass在厦门国际银行,将它添加到UITableView喜欢

class RestaurantsTableView: UITableView {
    override func awakeFromNib() {
        self.register(UINib(nibName: "RestaurantTableViewCell", bundle: nil), forCellReuseIdentifier: "restaurantCell")
    }
}
Run Code Online (Sandbox Code Playgroud)

和一切工作正常,现在我想用这个CustomTableViewClass作为UIView在其他一些UIViewController,但我不明白如何正确地重写它的init(coder aCoder: NSCoder)功能,因为我并不需要一个UITableView情况下,当我实现它就像我的其他自定义XIB意见做它崩溃了nil

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    let _ = Bundle.main.loadNibNamed("RestaurantTableViewCell", owner: self, options: nil)?[0] as! UIView
}
Run Code Online (Sandbox Code Playgroud)

Nir*_*v D 7

有一种方法可以使用哪种类型的contentView属性.因此,只需获取之前从nib获取的RestaurantTableViewCell然后使用它来获取它.UITableViewCellUIViewcontentViewUIView

let cell = Bundle.main.loadNibNamed("RestaurantTableViewCell", owner: self, options: nil)?[0] as! RestaurantTableViewCell
let yourView = cell.contentView
Run Code Online (Sandbox Code Playgroud)

  • myView.addSubview(单元格)工作得很完美,谢谢 (3认同)