UITableViewCell as UIView from XIB



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

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

一切正常,现在我想将此CustomTableViewClass用作其他UIViewController中的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
}

有一种方法可以使用UITableViewCellcontentView属性,类型为UIView。 因此,只需像以前从nib获得的那样获取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;

相关内容

  • 没有找到相关文章

最新更新