首先,对不起,如果我说错了,因为这是我第一次尝试使用笔尖。
我有一个用nib文件初始化的UIViewController“ MainVC”(我决定是因为它是弹出窗口并且更有意义),并且我想在UIView中嵌入另一个视图控制器“ RenderersViewController”。为此,我这样做:
override func viewDidLoad() {
super.viewDidLoad()
let renderersVC = RenderersViewController(withRowHeight: 42)
addChild(renderersVC)
renderersVC.view.frame = renderersContainerView.bounds
renderersContainerView.addSubview(renderersVC.view)
renderersVC.didMove(toParent: self)
}
RenderersViewController是具有UITableView且具有自定义初始化和笔尖的UIViewController
init(withRowHeight rowHeight:CGFloat) {
self.rowHeight = rowHeight
super.init(nibName: "RendererVCNib", bundle: nil)
}
当RenderersViewController didSet中的tableView时,我注册了一个自定义UITableViewCell,它也拥有自己的笔尖。
@IBOutlet weak var renderersTableView: UITableView!{
didSet{
renderersTableView.register(RenderersTableViewCell.self, forCellReuseIdentifier: "mycell")
renderersTableView.bounces = false
renderersTableView.dataSource = self
renderersTableView.delegate = self
}
}
以及在cellForIndex
中func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let rendererCell = tableView.dequeueReusableCell(withIdentifier: "mycell", for: indexPath) as! RenderersTableViewCell
if indexPath.row < rendererArray.count{
let cpRendererItem = rendererArray[indexPath.row]
//rendererCell.rendererNameLabel.text = cpRendererItem.friendlyName
//rendererCell.rendererImageView.sd_setImage(with: cpRendererItem.iconUrl, placeholderImage: UIImage(named:"upnp_ic")!)
rendererCell.rendererNameLabel.text = "HELLO"
rendererCell.rendererImageView.image = UIImage(named:"upnp_ic")
}
return rendererCell
}
RenderersTableViewCell Nib
答案 0 :(得分:1)
代替注册单元格的类,您需要注册用于实例化单元格的nib文件:
@IBOutlet weak var renderersTableView: UITableView!{
didSet{
let nibFile = UINib(nibName: "cells_xib_file", bundle: nil)
renderersTableView.register(nibFile, forCellReuseIdentifier: "mycell")
renderersTableView.bounces = false
renderersTableView.dataSource = self
renderersTableView.delegate = self
}
}
除此之外,您的xib文件看上去有点错误。对于单元xib,它应具有UITableViewCell
(根据情况为RenderersTableViewCell
)作为层次结构中的顶视图组件。最终,您应该获得类似于this的东西。