我有一个反向UITableView,要反向它,我在tableView和每个单元格上应用了CGAffineTransform(scaleX:1,y:-1)。

ios - 用自定义单元格反转UITableView-LMLPHP

我用自定义单元格(标签+ 2个按钮)填充表格视图。
每个按钮在上一个单元格上方插入一个新的自定义单元格,依此类推。

自定义单元格数据是通过本地.plist设置的。

ios - 用自定义单元格反转UITableView-LMLPHP

问题是添加了多个单元格后,行为发生了变化。标签完全显示完后,将显示按钮,但button1已突出显示,无法选择。
我不明白(发现)为什么...

一个git项目可以显示一千多个单词,因此我的项目示例:
https://github.com/cmii/ReverseTableView

在此示例中,当插入第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) {
...
     //le bouton sélectionné est mis en avant
                if button == <someBoolean> {
                    button.backgroundColor = UIColor.yellow
                } else {
                    button.backgroundColor = .clear
                }
...
}

如果还有其他问题,现在您可以了解它们的来历,因此您应该可以自己解决这些问题。祝好运! 🍀

关于ios - 用自定义单元格反转UITableView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44312294/

10-16 00:39