ios - 将 Button 添加到常量可变 TableView

标签 ios xcode uibutton tableview uitableview

我有一个 TableView ,只要发现新的外围设备就会重新加载。 我在每个单元格上都有一个按钮。此按钮允许将外围设备添加到阵列。现在添加按钮后,我想将其更改为取消,这就是我所做的。这里的问题是,表格总是重新加载,因此按钮总是返回到它的初始状态(ADD)。 请问有什么解决办法吗?

最佳答案

您的表格单元格应反射(reflect)数据模型中项目的状态。每次重新加载表格时,由于表格 View 通过其委托(delegate)请求单元格,因此您应该为每个单元格设置反射(reflect)当前状态所需的信息。听起来您只是在跟踪事件单元格中的状态,而不是将整体状态保留在数据模型中。

因此,当表格 View 询问给定 indexPath 的单元格时:

1) 为请求的 indexPath 出列一个单元格。

2) 设置单元格,使其知道它是数据模型的哪一部分的 View 。单元格中的显示/按钮应反射(reflect)数据模型中的内容。

3) 在您的按钮中,使目标操作更新数据模型而不是单元格。

4) 如果通过单元格中的按钮更改了数据模型,则仅重新加载该行而不是整个表格。重新加载该行将导致表格要求一个新的单元格,该单元格现在将反射(reflect)您的数据模型。

这将使您的单元格不受表重新加载的影响,因为您现在正在正确跟踪状态。

关于ios - 将 Button 添加到常量可变 TableView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29694000/

相关文章:

iphone - TableView 在 "reloadData()"之后需要花费大量时间来刷新

ios - 如何正确配置添加到现有 TableView Controller 的搜索栏?

ios - 一个 WebView 的多个 UIButton

iphone - 带有图像的自定义 UIButton

ios - 粘三个容器和 iPhone X 的一个问题

iOS ARKit 状态 (cameraDidChangeTrackingState) 卡在初始化中,无法跟踪

iOS Metal : command buffer execution order

ios - 以编程方式截取 iOS 中另一个应用程序的整个可滚动区域的屏幕截图

ios - WebDriverAgent 有问题 - Appium/Xcode

objective-c - 奇怪的是 uibuttons 文本标签不会改变