[英]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
,但是我没有得到如何正确重写其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
}
有一种方法可以使用UITableViewCell
contentView
属性,该属性为UIView
类型。 因此,只需像您之前从笔尖获取的那样简单地获取RestaurantTableViewCell,然后使用其contentView
从中获取UIView
。
let cell = Bundle.main.loadNibNamed("RestaurantTableViewCell", owner: self, options: nil)?[0] as! RestaurantTableViewCell
let yourView = cell.contentView
试试这个代码:
var views:NSArray = NSBundle.mainBundle().loadNibNamed("Your_Xib_file", owner: self, options: nil);
var yourView:UIView = views.objectAtIndex(0) as! UIView;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.