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
我在 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