Swift:如何将单元格发送到 TableView 中的正确部分?
Posted
技术标签:
【中文标题】Swift:如何将单元格发送到 TableView 中的正确部分?【英文标题】:Swift: How to send cell into correct section in TableView? 【发布时间】:2019-02-23 22:00:04 【问题描述】:我有简单的 TableView 和唯一的自定义单元格。 根据一些布尔值,我需要: 1. 如果 bool 为真,则在第 0 节中显示单元格; 2. 如果 bool 为 false,则在第 1 节中显示单元格。
找不到正确的方法,需要帮助。 谢谢!
【问题讨论】:
【参考方案1】:这可以通过在表视图的数据源中实现适当的逻辑并在布尔值更改时在表视图上调用适当的更新方法来完成。
基本示例:
var showSomethingInSectionZero = true
func numberOfSections(in tableView: UITableView) -> Int
return 2
func numberOfRows(inSection section: Int) -> Int
if section == 0, showSomethingInSectionZero
return 1
else if section == 1, !showSomethingInSectionZero
return 1
return 0
func tableView(_ tableView: UITableView,
cellForRowAt indexPath: IndexPath) -> UITableViewCell
return UITableViewCell()
并更新布尔和表格视图:
showSomethingInSectionZero = false
tableView.reloadData()
或者做动画:
showSomethingInSectionZero = false
tableView.moveRow(at: IndexPath(row: 0, section: 0),
to: IndexPath(row: 0, section: 1))
这是它的基础知识,如果您想要更深入的答案,您应该提供更多上下文和代码。
【讨论】:
非常感谢,vector是正确的,但我还是没有理解。首先,我正确地制作了 numberOfSections 和 numberOfRows。我对 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) 很感兴趣。 我需要实现 cellForRowAt indexPath 类似的东西: if bool == true prepare cell for section 0 else prepare cell for section 1 我终于明白基本概念了,多谢一次【参考方案2】:你可以关注cellForRow:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
if let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? customCell
if indexPath.section == 0
cell.controlShowCell = controlShowCell
return cell
else if indexPath.section == 1
cell.controlShowCell = !controlShowCell
return cell
return UITableViewCell()
【讨论】:
以上是关于Swift:如何将单元格发送到 TableView 中的正确部分?的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式将不同单元格的不同图像添加到 tableView (Swift)
如何以编程方式将不同单元格的不同图像添加到 tableView (Swift 3)
如何在 swift 3 中将图像从服务器加载到 tableView 单元格?