Ios 如何在没有UITableView的情况下将自定义UITableViewCell与xib一起使用

Ios 如何在没有UITableView的情况下将自定义UITableViewCell与xib一起使用,ios,uitableview,Ios,Uitableview,我已经创建了一个名为CustomTableViewCell的自定义UITableViewCellxib CustomTableViewCell的代码如下- class CustomTableViewCell:UITableViewCell{ @IBVAR标签1:UILabel! } 在UITableViewController中,我使用CustomTableViewCell如下- 在viewDidLoad()中,调用寄存器(uu∶forCellReuseIdentifier:) 在table

我已经创建了一个名为
CustomTableViewCell
的自定义
UITableViewCell
xib

CustomTableViewCell
的代码如下-

class CustomTableViewCell:UITableViewCell{
@IBVAR标签1:UILabel!
}
UITableViewController
中,我使用
CustomTableViewCell
如下-

  • viewDidLoad()
    中,调用
    寄存器(uu∶forCellReuseIdentifier:)

  • tableView(uquo:cellForRowAt:)
    函数中,调用
    dequeueReusableCell(带标识符:for:)
    ,并设置
    label1
    的文本

代码按预期工作,应用程序运行时,
CustomTableviewCell
可见

还有另一个带有xib的自定义
UIViewController
。对于这个xib文件,我想添加
CustomTableViewCell
作为子视图

我在xib中添加了一个
UIView
,并将其类设置为
CustomTableViewCell
。当应用程序运行时,应用程序崩溃,因为
标签
IBOutlet为零


有人能指出如何解决这个问题吗?

您试图做的事情是可以实现的,但方式不同。UITableView单元格仅由UITableView自动实例化。因此,通过设置类名,不会实例化CustomTableViewCell

解决办法是: 每个UITableView单元格都是UIView的子类,因此我们可以通过nib自己实例化CustomTableView单元格,并以编程方式将视图添加到容器视图中,我们可以将其放入UIViewController中

以下是可能对您有所帮助的代码

import UIKit

class ViewController: UIViewController {
   @IBOutlet weak var containerView: UIView!

   override func viewDidLoad() {
     super.viewDidLoad()

     let nib = UINib(nibName: String(describing: CustomTableViewCell.self), bundle: nil)
     if let customTableViewCell = nib.instantiate(withOwner: self, options: nil).first as? CustomTableViewCell {
        customTableViewCell.label1.text = "Hello"
        containerView.addSubview(customTableViewCell)
     }
   }
}

要添加自定义UIViewcell,您可以使用xib创建UIViewcell,并为特定单元格提供可重用的标识符。然后在uiviewcontroller中定义tableviewcell时使用该特定uiview单元格。

UITableViewCell的子机箱用于TableView,您应该子机箱uiview