Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用自定义单元格反转UITableView_Ios_Swift_Uitableview_Reverse - Fatal编程技术网

Ios 使用自定义单元格反转UITableView

Ios 使用自定义单元格反转UITableView,ios,swift,uitableview,reverse,Ios,Swift,Uitableview,Reverse,我有一个反向UITableView,要反向,我在tableView和每个单元格上应用CGAffineTransform(scaleX:1,y:-1) 我用自定义单元格(标签+2个按钮)填充表格视图。 每个按钮在上一个单元格上方插入一个新的自定义单元格,依此类推 自定义单元格数据通过local.plist设置 问题是在添加多个单元格后,行为会发生变化。当标签完成完全显示时,按钮会出现,但按钮1已高亮显示,无法选择。 我不明白(也不明白)为什么 一个git项目揭示了千言万语,因此我的项目示例:

我有一个反向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
                }
...
}