iOS 重用表格单元格设计

Posted

技术标签:

【中文标题】iOS 重用表格单元格设计【英文标题】:iOS reuse table cells design 【发布时间】:2016-07-08 17:48:16 【问题描述】:

我正在构建一个类似 youtube 的应用程序来训练自己使用 Swift 和 Autolayout。

但是我遇到了一个问题,在多个地方我需要显示一个视频表格,然后我想做的是设计一个视频的单元格,我将在其他表格中重复使用,但我不知道如何这样做。

我尝试将 ContainerView 放入单元格中,但出现此错误“容器视图不能放置在运行时重复的元素中。”

PS:我已经想到了一个引用视频 TableViewController 的 ContainerView,但问题是视频不是我想要在不同表中拥有的唯一单元格。 (有时底部有 cmets,有时还有其他东西等。很快:表格将有不同类型的单元格)。

【问题讨论】:

【参考方案1】:

使用单独的 xib 文件创建可重复使用的表格单元格。所以你创建了 CustomTableViewCell.swift 和 CustomTableViewCell.xib。要使用您的自定义单元格,您需要在UITableViewDataSource 中注册它。

This *** answer may be of use.

 import UIKit
class TableViewController: UITableViewController 
    let items = ["Item 1", "Item2", "Item3", "Item4"]

     override func viewDidLoad() 
        super.viewDidLoad()
        tableView.registerNib(UINib(nibName: "CustomOneCell", bundle: nil), forCellReuseIdentifier: "CustomCellOne")
    

 // MARK: - UITableViewDataSource

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
        return items.count
    
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
        let cell = tableView.dequeueReusableCellWithIdentifier("CustomCellOne", forIndexPath: indexPath) as! CustomOneCell
        cell.middleLabel.text = items[indexPath.row]
        cell.leftLabel.text = items[indexPath.row]
        cell.rightLabel.text = items[indexPath.row]
        return cell
    
 

【讨论】:

以上是关于iOS 重用表格单元格设计的主要内容,如果未能解决你的问题,请参考以下文章

通过单元格重用错误绘制的 UITableView 分隔符?

自定义表格单元格 iOS 6

重用表格视图单元格时出现问题?

为啥在制作自定义表格视图单元格时将可重用单元格出列两次

表格单元格中的集合视图。这是重用的错误

与可重用表格单元格不同的转场