使用自定义单元格反转 UITableView
Reversing UITableView with custom cells
我有一个反转的 UITableView,为了反转它,我在 tableView 和每个单元格上应用了 CGAffineTransform(scaleX: 1, y: -1)。
我用自定义单元格(标签 + 2 个按钮)填充我的 table 视图。
每个按钮都会在前一个单元格上方插入一个新的自定义单元格,依此类推。
自定义单元格数据通过本地 .plist 设置。
问题是在添加了一些单元格之后,行为发生了变化。当标签完全显示时,按钮出现,但按钮 1 已经突出显示并且无法选择。
我不明白(并发现)为什么...
一个git项目揭示了一千多个字,所以我的项目样本:
https://github.com/cmii/ReverseTableView
在此示例中,问题出现在插入第 5 个单元格时。
您正在使一个单元格出队,然后在不重置的情况下使用它。系统创建的单元格只够容纳可见单元格。之后,他们将重新 used.Here 的示例使用您的代码。当你创建一个单元格时,你这样做:
//le bouton sélectionné est mis en avant
if button == sender as! ChoiceButton {
button.backgroundColor = UIColor.yellow
}
当你把它变成黄色,它从屏幕上消失,你将它出队然后重新使用没有 "cleaning it up" 的单元格时会发生什么?即使它不是 ChoiceButton,它也会是黄色的,因为它已经是黄色的了。
在 configureCell 方法中修复此问题的最简单方法。做同样的检查,但如果它不是 ChoiceButton,则将其恢复为正常颜色(在本例中我将使用清除):
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
}
...
}
如果还有其他问题,现在您了解它们的来源,因此您应该能够自己解决它们。祝你好运!
我有一个反转的 UITableView,为了反转它,我在 tableView 和每个单元格上应用了 CGAffineTransform(scaleX: 1, y: -1)。
我用自定义单元格(标签 + 2 个按钮)填充我的 table 视图。 每个按钮都会在前一个单元格上方插入一个新的自定义单元格,依此类推。
自定义单元格数据通过本地 .plist 设置。
问题是在添加了一些单元格之后,行为发生了变化。当标签完全显示时,按钮出现,但按钮 1 已经突出显示并且无法选择。 我不明白(并发现)为什么...
一个git项目揭示了一千多个字,所以我的项目样本: https://github.com/cmii/ReverseTableView
在此示例中,问题出现在插入第 5 个单元格时。
您正在使一个单元格出队,然后在不重置的情况下使用它。系统创建的单元格只够容纳可见单元格。之后,他们将重新 used.Here 的示例使用您的代码。当你创建一个单元格时,你这样做:
//le bouton sélectionné est mis en avant
if button == sender as! ChoiceButton {
button.backgroundColor = UIColor.yellow
}
当你把它变成黄色,它从屏幕上消失,你将它出队然后重新使用没有 "cleaning it up" 的单元格时会发生什么?即使它不是 ChoiceButton,它也会是黄色的,因为它已经是黄色的了。
在 configureCell 方法中修复此问题的最简单方法。做同样的检查,但如果它不是 ChoiceButton,则将其恢复为正常颜色(在本例中我将使用清除):
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
}
...
}
如果还有其他问题,现在您了解它们的来源,因此您应该能够自己解决它们。祝你好运!