为提供多选选择器,我在键UITabelViewController
上添加了自定义"componentViewController"
,键为UIAlertController
。
UITabelViewController
使用内部的indexPath数组来检查选择了哪些单元格:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
...
cell.accessoryType = self.selectedIndexPath.contains(indexPath) ? .checkmark : .none
...
}
UITableViewDelegate
方法:didSelectRowAt
和:didDeselectRowAt
会执行应做的工作-从数组中添加或删除所需的indexPath
,并在适当的:reloadRows
处添加indexPath
也是
如您所见,首次选择后一切都完美无缺:
但是在第二个之后,我们可能会看到此错误
每个单元格上的 .checkmark
表现出奇怪的行为。
即使我只是在每个单元格上更改titleLabel
颜色,我们也会看到相同的内容。
不知道如何解决此问题,期待不要使用自定义UITableViewCell
类或史密斯。
谢谢。
p.s。如果我提出UITableViewController
没有嵌入UIALertController
中-一切都很好。