我的Tableview正在重复使用以前的单元格图像数据并显示以前单元格中的图像。我做了以下以防止它重复使用。我错过了什么?
@IBAction func cityBtn(_ sender: UIButton) {
for i in stride(from: 0, to: assignCities.count, by: 1)
{ cityName.append(bigCities[i])
cityImages.append(bigCityImages[i])
}}
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let myCell= tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CityCell
myCell.myLabel.text = cityName[indexPath.row]
let cityImg = cityImages[indexPath.row]
myCell.myImage.image = nil
if (cityImg != "")
{
myCell.myImage.image = UIImage(named:cityImg)
}
else
{
myCell.myImage.image = nil
}
return myCell
}
import UIKit
class CityCell: UITableViewCell {
@IBOutlet weak var myImage: UIImageView!
@IBOutlet weak var myLabel: UILabel!
override func prepareForReuse() {
super.prepareForReuse()
myImage.image = nil
}
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
我做了以上但仍然没有得到结果
答案 0 :(得分:7)
您可以实施func prepareForReuse()
的{{1}}方法并在那里重置您的单元格属性。
在从UITableView方法dequeueReusableCell返回对象之前调用此方法(withIdentifier:)
UITableViewCell
这必须在自定义表格视图单元格类中实现。
答案 1 :(得分:0)
如果你的tableView中没有那么多单元格,也许你可以使用唯一的CellIdentifier,例如:indexPath.section_indexPath.row