繁体   English   中英

在自定义单元格Swift中保存uibutton状态

[英]Saving uibutton state in custom cell Swift

我有一个带有两个uibuttonscustom cell 单击按钮之一,也会基于具有两个uibuttons的自定义单元格追加行。

单击按钮后,我将其alpha更改为50%,并将布尔值isPressed设置为true。 因此,下次用户按下按钮时,将产生一个带有错误的alert view

问题是-每次我滚动-带有按钮的单元格都被重用,并且这两个规则混乱地应用。

我浏览了堆栈中的答案,但是没有发现任何对我有帮助的东西,尤其是迅速解决问题的方法。 我知道可以创建一个数组,将其附加booleanindexPath.rowcurrentTitle对象-然后在滚动tableview时以某种方式使用此数组。 但是对我来说实现不清楚。 更困难的是,我在一行中有两个按钮。

希望在这个问题上有任何帮助。

谢谢。

在objc中实现的想法将如下所示:

  1. 创建一个大小等于单元数的NSArray。

  2. 在调用[self.tableView reloadData];之前,用[NSNumber numberWithBOOL:NO]类的对象(如果需要按状态,则为YES )进行初始化[self.tableView reloadData];

  3. cellForRowAtIndexPath方法中,检查[array[indexPath.row] boolValue]是否为YES或NO,并设置按钮的状态。

希望它会有所帮助。

有关表视图的教程很多。 喜欢这里 您需要从视图(表中的单元格和按钮)中分离数据的模型(例如是否按下按钮)。 如果这个想法不清楚,您将需要查找MVC(模型视图控制器)或MVVM(模型视图视图模型)。

这个想法是,您有一个记录(例如在数组中)记录表中所有项目的外观,而不管它们是否出现在屏幕上。 当需要显示一个单元格时,可以根据数组中的信息用它应该的状态覆盖它的当前状态(因为它正在回收)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM