iphone - 滚动uitableview时图像恢复为原始图像

标签 iphone ios uitableview

我在每个单元格内都有一个按钮。当它被按下时,图像会改变(基本上是一个复选框)以表示一个选择。当您滚动到底部时...然后向上滚动到顶部。图像恢复为原始图像。

这个问题与此非常相似:

Preserve Cell Image After Scrolling UITableView

和别的。但是,我似乎找不到一个好的答案。我知道当单元格离开屏幕时,它会恢复到 uitableview 的设置方式。但是,如何将更改后的图像保存到 uitableview,以便在滚动时不会恢复为原始图像?

提前致谢! =)

最佳答案

它正在变回,因为细胞被重复使用。当您的单元格离开屏幕时,它会从 View 中取出并放回重用池中。然后您将在 cellForRowAtIndexPath 中再次将其从队列中取出。并将其设置为默认值。

您链接到的问题正是您应该遵循的。您应该将单元格的状态存储在 View Controller 中,然后在 cellForRowAtIndexPath 中再次设置它时。您应该加载该状态并适本地设置单元格。

您的方法的一种简单方法是使用 NSArray您将其设置为与表中的行数相同的大小,然后在其中存储一个 NSNumber对于每一行,它包含一个 bool 值 on 或 off 用于您的选择状态。当用户切换时,切换数组中的值,然后切换 cellForRowAtIndexPath读取该值并进行适当设置。

关于iphone - 滚动uitableview时图像恢复为原始图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8886996/

相关文章:

ios - iOS 7 的 UISplitViewController "ViewIdentifier was not found in Storyboard"错误

iphone - 更改 iphone sdk 中文本字段的占位符字体

ios - SwiftUI 在 View 之间转换,没有转换

objective-c - 我是否必须保留/释放从 NSDictionary 获取的值?

ios - 无法弄清楚如何在 Visual Studio 2019 上使用 Xamarin 将 iOS Apps Ad Hoc 发送到某些 iPhone

swift - Firestore - 创建集合的副本

ios - 通过委托(delegate)传递数据后无法将数据加载到 TableView

iphone - 如何对 iphone 通讯录进行排序?

ios - 单元格包含 UITableViews 的 UICollectionView

iphone - 如何将行号添加到 UITextView?