[英]Saving uibutton state in custom cell Swift
我有一个带有两个uibuttons
的custom cell
。 单击按钮之一,也会基于具有两个uibuttons
的自定义单元格追加行。
单击按钮后,我将其alpha
更改为50%,并将布尔值isPressed
设置为true。 因此,下次用户按下按钮时,将产生一个带有错误的alert view
。
问题是-每次我滚动-带有按钮的单元格都被重用,并且这两个规则混乱地应用。
我浏览了堆栈中的答案,但是没有发现任何对我有帮助的东西,尤其是迅速解决问题的方法。 我知道可以创建一个数组,将其附加boolean
, indexPath.row
或currentTitle
对象-然后在滚动tableview时以某种方式使用此数组。 但是对我来说实现不清楚。 更困难的是,我在一行中有两个按钮。
希望在这个问题上有任何帮助。
谢谢。
在objc中实现的想法将如下所示:
创建一个大小等于单元数的NSArray。
在调用[self.tableView reloadData];
之前,用[NSNumber numberWithBOOL:NO]
类的对象(如果需要按状态,则为YES
)进行初始化[self.tableView reloadData];
cellForRowAtIndexPath
方法中,检查[array[indexPath.row] boolValue]
是否为YES或NO,并设置按钮的状态。 希望它会有所帮助。
有关表视图的教程很多。 喜欢这里 。 您需要从视图(表中的单元格和按钮)中分离数据的模型(例如是否按下按钮)。 如果这个想法不清楚,您将需要查找MVC(模型视图控制器)或MVVM(模型视图视图模型)。
这个想法是,您有一个记录(例如在数组中)记录表中所有项目的外观,而不管它们是否出现在屏幕上。 当需要显示一个单元格时,可以根据数组中的信息用它应该的状态覆盖它的当前状态(因为它正在回收)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.