UITableViewCell 作为来自 XIB 的 UIView

UITableViewCell as UIView from XIB

我在 XIB 中有 CustomTableViewClass,将其添加到 UITableView 就像

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

一切正常,现在我想在其他 UIViewController 中将此 CustomTableViewClass 用作 UIView,但我不知道如何正确覆盖它的 [=17] =] 函数,因为我不需要一个用于 UITableView 的情况,当我像为其他自定义 XIB 视图一样实现它时,它会因 nil

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

试试这个代码:

    var views:NSArray = NSBundle.mainBundle().loadNibNamed("Your_Xib_file", owner: self, options: nil);
    var yourView:UIView = views.objectAtIndex(0) as! UIView;

有一种方法可以使用 contentView 属性 of UITableViewCell which of type UIView。 因此,只需像以前从 nib 获取 RestaurantTableViewCell 一样获取 RestaurantTableViewCell,然后使用其 contentView 从中获取 UIView

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