有什么方法可以只重新加载tableViewCell但是不要让它重新加载tableView部分标题View?当我切换UITableViewCell时,我想更新数据重载更改
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
switch self[selectedIndex] {
case .tracks:
let cell = tableView.dequeueReusableCell(withIdentifier: cellId, for: indexPath) as! TracksCell
return cell
case .playlists:
let cell = tableView.dequeueReusableCell(withIdentifier: cellPlayListId, for: indexPath) as! PlaylistCell
return cell
}
我想要做的只是重新加载UITableViewCell我不想在下面重新加载此代码
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {}
如果我使用tableView.reload(),它将在viewForHeaderInSection中影响我的样式因为我添加了UIViewScroll
谢谢你的帮助!
答案 0 :(得分:7)
如果您只想重新加载特定的tableView单元格,请使用:
tableView.reloadRows(at: [IndexPath(row: rowNumber, section: 0)], with: .automatic)
它只重新加载单元格而不是部分。
答案 1 :(得分:2)
重新加载特定的UITableViewCell
tableviewCart.reloadRows(at: [indexPath!], with: .none)
答案 2 :(得分:1)
寻找用于重新加载视图的表视图委托方法。这些是:
open func reloadSections(_ sections: IndexSet, with animation: UITableView.RowAnimation)
open func reloadRows(at indexPaths: [IndexPath], with animation: UITableView.RowAnimation)
open func reloadData()
在您的情况下,reloadRows
将是最合适的选择,因为:
tableView.reloadRows(at: <[IndexPath]>, with: .automatic)
其中<[IndexPath]>
是单元格的索引路径的数组。例如:
let cell0FromSection0 = IndexPath(row: 0, section: 0)
let cell2FromSection0 = IndexPath(row: 2, section: 0)
let cell1FromSection1 = IndexPath(row: 1, section: 1)
tableView.reloadRows(at: [cell0FromSection0, cell2FromSection0, cell1FromSection1], with: .automatic)