我在每个单元格内都有一个按钮。当它被按下时,图像会改变(基本上是一个复选框)以表示一个选择。当您滚动到底部时...然后向上滚动到顶部。图像恢复为原始图像。
这个问题与此非常相似:
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/