【发布时间】:2015-07-10 08:27:20
【问题描述】:
我的 tableviewcell 中有一个按钮,当满足特定条件时,我想更改按钮图像。我的桌面视图有无尽的滚动。
例如,我在第一页上有 10 个单元格。第一个单元格符合条件并且按钮图标更改正确显示。但是当我滚动 11 时,单元格图标也发生了变化,不符合标准。当我向下滚动时,我观察到第 21、31... 单元格图标也发生了变化。
func setupX(){
let authorID = self.yazar?["author_id"].int!
let fetchRequest = NSFetchRequest(entityName: "FavAuthors")
let sortDescriptor = NSSortDescriptor(key: "authorID", ascending: true)
fetchRequest.sortDescriptors = [sortDescriptor]
let predicate = NSPredicate(format: "authorID == %ld", authorID!)
fetchRequest.predicate = predicate
let fetchResults = self.context!.executeFetchRequest(fetchRequest, error: nil) as? [FavAuthors]
if fetchResults!.count == 0 {
}else{
self.followButton.setImage(UIImage(named: "UnFollow Button.pdf"), forState: UIControlState.Normal)
}
}
【问题讨论】:
-
这是因为 tableview 重用了单元格......你必须保持单元格上的按钮状态才能摆脱这个
-
我不知道代码与所描述的问题有什么关系,但我仍然可以判断出了什么问题:tableViewCells 被重用,如果一个单元格移出屏幕而另一个单元格移动-screen 不会创建一个新的单元格,它会重用以前关闭的单元格。如果您将图像设置在
cellForRowAtIndexpath之外的某个位置,则如果单元格被排成队列以获取新的索引路径,则先前设置的内容仍然存在。 -
我将它设置在我的自定义 tableviewcell 中
标签: ios swift uitableview