为什么在表视图单元格上调用setSelected时我 的选择状态不保留?

问题描述 投票:0回答:1

所以我来到了这条小路。我创建了一个自定义的tableview单元格,在tableviw单元格类中,我重写了[tableViewCell setSelected:TRUE animated:FALSE]。在我的cellForRowAtIndexPath方法中,我检查了一些逻辑,如果逻辑是正确的,则使用[tableViewCell setSelected:TRUE animated:FALSE]; All(好而繁琐)全部设置为选定的单元格,直到我意识到这一点。在我显式调用[tableviewCell setSelected]之后,系统正在隐式调用setSelected。当系统调用它时,当我明确将其设置为true时,我的选择状态将设置为false。我知道它是相同的tableview单元格,因为我使用self来检查它的内存位置。我找到了解决此问题的答案,但对于为什么发生这种情况确实没有任何意义。如果我调用[tableView selectRowAtIndexPath:indexPath animated:FALSE scrollPosition:UITableViewScrollPositionNone];,则不会两次调用setSelected方法,它会保留我在逻辑中对单元格设置的选定状态。那么为什么这种方式有效,而不仅仅是设置单元格的选定状态?

ios iphone uitableview tableviewcell
1个回答
0
投票

您可以从选择委托方法中设置选择状态

let cell = self.tableView.cellForRow(at: indexPath)
cell.isSelected = true

它将自动选择和取消选择单元格

© www.soinside.com 2019 - 2024. All rights reserved.