繁体   English   中英

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 ,但是我没有得到如何正确重写其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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM