获取部分中的所有indexPath
在对tableview数据进行某种排序后,我需要重新加载不包括标题的部分。 这就是说我只想重新加载该部分中的所有行。 但是在我搜索一段时间之后,我找不到一个简单的方法来制作它。
reloadSections(sectionIndex, with: .none)
在这里reloadSections(sectionIndex, with: .none)
,因为它将重新加载整个部分,包括页眉,页脚和所有行。
所以我需要使用reloadRows(at: [IndexPath], with: UITableViewRowAnimation)
。 但是如何获取该部分中所有行的整个indexPaths。
在我看来,你不需要在该部分重新加载整个单元格。 简单地说,重新加载可见的单元格以及需要重新加载的内部区域。 重新加载不可见单元格是没用的,因为在调用tableView(_:cellForRowAt:)
时它们将被修复。
试试我的下面的代码
var indexPathsNeedToReload = [IndexPath]() for cell in tableView.visibleCells { let indexPath: IndexPath = tableView.indexPath(for: cell)! if indexPath.section == SECTION_INDEX_NEED_TO_RELOAD { indexPathsNeedToReload.append(indexPath) } } tableView.reloadRows(at: indexPathsNeedToReload, with: .none)
您可以在给定的部分中使用以下函数获取IndexPath数组。
func getAllIndexPathsInSection(section : Int) -> [IndexPath] { let count = tblList.numberOfRows(inSection: section); return (0..
要么
func getAllIndexPathsInSection(section : Int) -> [IndexPath] { return tblList.visibleCells.map({tblList.indexPath(for: $0)}).filter({($0?.section)! == section}) as! [IndexPath] }
您可以像这样重新加载indexPaths …
let indexPaths = tableView.visibleCells .compactMap { tableView.indexPath(for: $0) } .filter { $0.section == SECTION }
没有必要重新加载不可见的单元格,因为它们将cellForRow(at indexPath:)
调用cellForRow(at indexPath:)
时更新
使用UITableView的numberOfRows inSection方法迭代节中的索引路径。 然后,您可以构建IndexPath数组:
var reloadPaths = [IndexPath]() (0..
- 错误'缺less必要的参数:grant_type'使用Swift 3
- 类 – (MyAnnotation注释)被释放
- 无法设置CALayer的边框颜色
- 在UITableView中显示和隐藏特定的单元格types(可能带有animation)
- 以编程方式在Swift中模拟UITableViewController中的select
- 按距离排序UITableView
- var someString =“Some String”,var someString:String =“Some String”,var someString =“Some String”as string
- 让UITableViewCell使用autolayout调整自身大小
- 将现有的CGColor分配给CGColor属性可以在iOS模拟器中使用,而不是iOS设备。 为什么?