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

时间:2015-09-14 16:22:30

标签: ios swift uitableview uibutton custom-cell

我有两个custom cell的{​​{1}}。 单击其中一个按钮也会基于具有两个uibuttons的自定义单元格附加行。

点击按钮后,我将uibuttons更改为50%,布尔alpha设置为true。因此,下次用户按下按钮时,会产生isPressed错误。

问题是 - 每次我滚动时 - 带有按钮的单元格正在重复使用,这两个规则会被混乱地应用。

我已经在堆栈上浏览了答案,但没有看到任何可以帮助我的东西,尤其是在快速的情况下。我知道可以创建一个数组,用alert viewbooleanindexPath.row对象附加它 - 然后在滚动tableview时以某种方式使用这个数组。但实施对我来说并不清楚。更难的是我有一排两个按钮。

非常感谢有关该主题的任何帮助。

谢谢。

2 个答案:

答案 0 :(得分:4)

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

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

  2. 使用[NSNumber numberWithBOOL:NO]等对象初始化它 在致电YES

  3. 之前,如果您需要按下状态,请[self.tableView reloadData];
  4. 在方法cellForRowAtIndexPath中检查是否 [array[indexPath.row] boolValue]为YES或NO并设置按钮 状态。
  5. 希望它会有所帮助。

答案 1 :(得分:2)

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

这个想法是你有一个记录,例如在一个数组中,记录表中所有项目的样子,无论它们是否在屏幕上。当您需要显示一个单元格时,根据数组中的信息覆盖其当前状态(因为它正在被回收) - 基于数组中的信息。