我正在创建一个锻炼应用程序,我创建了一个UITableview来显示所有可用的练习(大约120个)。我正在使用NSFetchedResultsController从CoreData获取数据。我遇到的问题是当我滚动表格时,我的CPU使用率非常高。它的范围从50%-100%,具体取决于我滚动的速度。
这是我的行的单元格:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? ExerciseCell else {fatalError("Couldn't load appropriate index path for custom cell")}
let exercise = self.fetchedResultsController.object(at: indexPath)
cell.exerciseTitle.text = exercise.name
if let getImage = exercise.image2 {
let image = UIImage(data: getImage as Data)
cell.exerciseImage.image = image
} else {
cell.exerciseImage.image = nil
}
return cell
}
我不确定它是否与我如何转换图像有关?或者我如何设置CoreData?任何帮助都是极好的。感谢。
答案 0 :(得分:0)
似乎你可能在UIImage上做了昂贵的工作。
为了实现无缝滚动,您应遵循一些指导原则。
一个拇指规则:尝试尽可能快地使tableView:cellForRowAtIndexPath
方法返回单元格实例
tableView:cellForRowAtIndexPath