gpt4 book ai didi

ios - UITableView 错误?可重复使用的细胞不正确

转载 作者:行者123 更新时间:2023-11-29 06:00:18 24 4
gpt4 key购买 nike

我有默认的 UITableViewController ,有 10 行有带分段控件的 UITableViewCell

如果我更改segmentController在可能的单元格中选择的索引:2,那么向下滚动segmentController的这种状态将在其他单元格中

cells1(selectedIndex: 1 )cells2(selectedIndex: 1 )
cells3(selectedIndex: 1 )cells4(selectedIndex: 1 )cells5(selectedIndex: 1 )

...在单元格 2 中选择其他索引 (2)向下滚动和单元格 5 有相同的选定索引,但我没有碰它们

cells1(selectedIndex: 1 )cells2(selectedIndex: 2 )
cells3(selectedIndex: 1 )cells4(selectedIndex: 1 )cells5(selectedIndex: 2 )

selected 0 row

row 5 is too selected, why?

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)

cell.selectionStyle = .none
cell.textLabel?.text = String(indexPath.row)
cell.textLabel?.textColor = .white

return cell
}

最佳答案

UITableView 和 UICollectionView 重用单元格。这意味着它只在内存中保留足够的单元格来显示屏幕上的内容。当您将单元格滚动离开屏幕时,它们会被反馈成为正在显示的单元格。当单元格重新出现在 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)

中时,您需要正确配置它们

因此,在您的情况下,您每次都需要在 cellForRow 中设置分段控件的选择。

这意味着您需要一种方法来跟踪分段控件上所做的选择,并在单元格再次显示时调用它以正确设置分段控件。

关于ios - UITableView 错误?可重复使用的细胞不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54743510/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com