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 重用表格单元格设计的主要内容,如果未能解决你的问题,请参考以下文章