在自定义单元格中保存 uibutton 状态 Swift
Saving uibutton state in custom cell Swift
我有一个 custom cell
和两个 uibuttons
。
单击其中一个按钮也会根据带有两个 uibuttons
.
的自定义单元格追加行
单击按钮后,我将其 alpha
更改为 50%,并且布尔值 isPressed
设置为 true。所以下次用户按下按钮时,它会产生一个 alert view
错误。
问题是 - 每次我滚动 - 带有按钮的单元格 被重复使用 并且这两个规则应用混乱。
我浏览了堆栈中的答案,但没有看到任何对我有帮助的东西,尤其是在 swift 中。我知道可以创建一个数组,将其附加 boolean
、indexPath.row
或 currentTitle
对象 - 然后在滚动 tableview 时以某种方式使用此数组。但我不清楚实施情况。更困难的是我在一行中有两个按钮。
非常感谢有关该主题的任何帮助。
谢谢。
有很多关于 table 视图的教程。 Like here。您需要将数据模型(例如是否按下按钮)与视图(table 中的单元格和按钮)分开。如果这个想法不清楚,您将需要查找 MVC(模型视图控制器)或 MVVM(模型视图视图模型)。
想法是,您有一个记录,例如在一个数组中,记录您 table 中的所有项目应该是什么样子,无论它们是否在屏幕上。当你需要显示一个单元格时,你可以根据数组中的信息用它应该的状态覆盖它的当前状态(因为它正在被回收)。
在 objc 中实现的想法将如下所示:
创建一个大小等于单元格数的 NSArray。
用 [NSNumber numberWithBOOL:NO]
之类的对象初始化它(或
YES
如果你需要按下状态)在你调用 [self.tableView reloadData];
之前
- 在方法
cellForRowAtIndexPath
中检查是否
[array[indexPath.row] boolValue]
为 YES 或 NO 并设置按钮的
状态。
希望对您有所帮助。
我有一个 custom cell
和两个 uibuttons
。
单击其中一个按钮也会根据带有两个 uibuttons
.
单击按钮后,我将其 alpha
更改为 50%,并且布尔值 isPressed
设置为 true。所以下次用户按下按钮时,它会产生一个 alert view
错误。
问题是 - 每次我滚动 - 带有按钮的单元格 被重复使用 并且这两个规则应用混乱。
我浏览了堆栈中的答案,但没有看到任何对我有帮助的东西,尤其是在 swift 中。我知道可以创建一个数组,将其附加 boolean
、indexPath.row
或 currentTitle
对象 - 然后在滚动 tableview 时以某种方式使用此数组。但我不清楚实施情况。更困难的是我在一行中有两个按钮。
非常感谢有关该主题的任何帮助。
谢谢。
有很多关于 table 视图的教程。 Like here。您需要将数据模型(例如是否按下按钮)与视图(table 中的单元格和按钮)分开。如果这个想法不清楚,您将需要查找 MVC(模型视图控制器)或 MVVM(模型视图视图模型)。
想法是,您有一个记录,例如在一个数组中,记录您 table 中的所有项目应该是什么样子,无论它们是否在屏幕上。当你需要显示一个单元格时,你可以根据数组中的信息用它应该的状态覆盖它的当前状态(因为它正在被回收)。
在 objc 中实现的想法将如下所示:
创建一个大小等于单元格数的 NSArray。
用
[NSNumber numberWithBOOL:NO]
之类的对象初始化它(或YES
如果你需要按下状态)在你调用[self.tableView reloadData];
之前
- 在方法
cellForRowAtIndexPath
中检查是否[array[indexPath.row] boolValue]
为 YES 或 NO 并设置按钮的 状态。
希望对您有所帮助。