我正试图在桌子上解决这个非常缓慢,缓慢的滚动。
我使用核心数据包装器AERecord来获取数据,并且在没有cell.toneImage.image = UIImage(named: tone.image)
图像不大(350 X 170)但是只要我滚动到足以加载新图像,def就会冻结一秒钟。
我在模拟器等中检查了混合图像。是否可以获取数据+同时加载图像?有什么想法或建议吗?
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! mwCellTableViewCell
self.configureCell(cell, atIndexPath: indexPath)
return cell
}
func configureCell(_ cell: mwCellTableViewCell, atIndexPath indexPath: IndexPath) {
if let frc = fetchedResultsController {
if let tone = frc.object(at: indexPath) as? Tone {
// set data
cell.toneTitle.text = tone.name.uppercased()
let img:UIImage = tone.fav ? #imageLiteral(resourceName: "likeBtnOn") : #imageLiteral(resourceName: "likeBtnOff")
cell.favButton.setImage(img, for: .normal)
cell.favButton.tag = indexPath.row
cell.favButton.addTarget(self, action: #selector(favme(_:)), for: .touchUpInside)
cell.toneImage.image = UIImage(named: tone.image)
cell.toneImage.layer.cornerRadius = 8.0
cell.toneImage.clipsToBounds = true
}
}
}
答案 0 :(得分:0)
tone.image
是否正在进行懒惰抓取?我还没有使用AERecord
,但是如果它的延迟加载,可能是一项昂贵的操作。
您是否尝试在后台线程上执行该获取,因此主线程未被阻止?
我很想尝试这个:
tone
对象传递到您的mwCellTableViewCell
mwCellTableViewCell
尝试在后台主题中获取tone.image
self.image = toneImage
答案 1 :(得分:0)
解决这个问题有两种方法
使用async在后台获取并设置图像。
在重新加载Tableview数据之前获取图像