在 swift 中将 TableView 添加到 .xib 视图中

Add TableView into .xib View in swift

单击按钮后,我有一个 .xib 视图,我在其中为单元格定义了一个 tableView.Here 我创建了另一个 .xib 文件,因为只有 option 。我认为没有默认单元格。所以我如何在 tableview 单元格中显示项目。 我已经像这样注册了 .Xib 并尝试了但我得到了令人惊讶的观点。

class CustomAddOnVC: UIViewController,UITableViewDataSource,UITableViewDelegate {

let items = ["pk","ak","sk"]

override func viewDidLoad() {
    super.viewDidLoad()
}
 func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return items.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    
    let identifier = "Cell"
    var cell: CustomOneCell! = tableView.dequeueReusableCellWithIdentifier(identifier,forIndexPath: indexPath) as? CustomOneCell
    if cell == nil {
        tableView.registerNib(UINib(nibName: "CustomOneCell", bundle: nil), forCellReuseIdentifier: identifier)
        cell = tableView.dequeueReusableCellWithIdentifier(identifier,forIndexPath:indexPath ) as? CustomOneCell
        cell.addOnName.text = items[indexPath.row]
        cell.addOnPrice.text = "£0.0"
    }
    
    return cell
}

此处计数的项目为 3,但数据仅填充在第一个中。

截图

还有一件事我怎样才能设置所有项目末尾的视图高度?如您所见,项目后有额外的 space。如果我减小尺寸并且出现更多项目,那么同样 problem.I 想要根据项目数据动态设置高度

我想是因为你第一次注册的时候没有进入你的cell == nil了。因此,我的建议是将您的更新文本移到 if 语句之外。像这样:

if cell == nil {
    tableView.registerNib(UINib(nibName: "CustomOneCell", bundle: nil), forCellReuseIdentifier: identifier)
    cell = tableView.dequeueReusableCellWithIdentifier(identifier,forIndexPath:indexPath ) as? CustomOneCell
}
cell.addOnName.text = items[indexPath.row]
cell.addOnPrice.text = "£0.0"`