Ios 使用自定义单元格反转UITableView
我有一个反向UITableView,要反向,我在tableView和每个单元格上应用CGAffineTransform(scaleX:1,y:-1) 我用自定义单元格(标签+2个按钮)填充表格视图。 每个按钮在上一个单元格上方插入一个新的自定义单元格,依此类推 自定义单元格数据通过local.plist设置 问题是在添加多个单元格后,行为会发生变化。当标签完成完全显示时,按钮会出现,但按钮1已高亮显示,无法选择。 我不明白(也不明白)为什么 一个git项目揭示了千言万语,因此我的项目示例:Ios 使用自定义单元格反转UITableView,ios,swift,uitableview,reverse,Ios,Swift,Uitableview,Reverse,我有一个反向UITableView,要反向,我在tableView和每个单元格上应用CGAffineTransform(scaleX:1,y:-1) 我用自定义单元格(标签+2个按钮)填充表格视图。 每个按钮在上一个单元格上方插入一个新的自定义单元格,依此类推 自定义单元格数据通过local.plist设置 问题是在添加多个单元格后,行为会发生变化。当标签完成完全显示时,按钮会出现,但按钮1已高亮显示,无法选择。 我不明白(也不明白)为什么 一个git项目揭示了千言万语,因此我的项目示例:
在本示例中,插入第5个单元格时会出现问题。您正在对单元格进行排队,然后在不重置的情况下使用它。系统创建的单元格仅足以容纳可见单元格。在此之后,它们将被重新使用。下面是一个使用您的代码的示例。创建单元格时,请执行以下操作:
//le bouton sélectionné est mis en avant
if button == sender as! ChoiceButton {
button.backgroundColor = UIColor.yellow
}
当你把它变成黄色,它离开屏幕,你把它排出来,然后在没有“清理”的情况下重新使用这个单元,会发生什么?即使它不是ChoiceButton,它也将是黄色的,因为它已经是黄色的了
在configureCell方法中解决此问题的最简单方法。执行相同的检查,但如果它不是ChoiceButton,则将其恢复为正常颜色(在本例中我将使用clear):
func configureCell(tableView:UITableView,cell:ParagraphTableViewCell,atIndexPath indexPath:indexPath){
...
//布顿选择酒店
如果按钮=={
button.backgroundColor=UIColor.yellow
}否则{
button.backgroundColor=.clear
}
...
}
如果还有其他问题,现在您了解了它们的来源,因此您应该能够自己解决它们。祝你好运我不在办公桌上,所以不能测试。我认为您正在将一个单元格退出队列,然后在不重置它的情况下使用它。系统创建的单元格仅足以容纳可见单元格。之后,它们被重新使用。使用table view prepareCellForReuse,或者在单元格出列后将属性设置为nil。是代码self.tableView.register(UINib(nibName:“ParagraphTableViewCellView”,bundle:bundle.main),forCellReuseIdentifier:“ParagraphTableViewCell”)的错误吗?我在Swift 3.0中读到这是必要的。这是因为您在上次使用该单元格时已对其进行了更改,并且在重新使用该单元格时未撤消这些更改。
func configureCell(tableView: UITableView, cell: ParagraphTableViewCell, atIndexPath indexPath: IndexPath) {
...
//le bouton sélectionné est mis en avant
if button == <someBoolean> {
button.backgroundColor = UIColor.yellow
} else {
button.backgroundColor = .clear
}
...
}