gpt4 book ai didi

UITableView 缓慢加载图像

转载 作者:行者123 更新时间:2023-11-28 09:13:48 25 4
gpt4 key购买 nike

TableView 从解析 api 获取图像。但是,在 tableView 中滚动时,加载图像时会出现延迟。

是否有减少延迟的有效方法?在用户滚动到单元格之前(甚至之后)加载图像的某种方式?我不太熟悉处理异步调用。

获取图像函数

func fetchImage(restaurantArray: PFObject!, completionHandler: ImageCompletionHandler!){
var imageReference = restaurantArray["PhotoUploaded"] as PFFile
imageReference.getDataInBackgroundWithBlock{
(data, error) -> Void in

if (error != nil){
completionHandler(image: nil, error: error)
}else{
let image = UIImage(data: data)
completionHandler(image: image, error: nil)
}
}
}

TableView 单元格

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("RestaurantCell", forIndexPath: indexPath) as FeedCell

cell.nameLabel.text = restaurantNames[indexPath.row]

// check if image is empty
if foodPhotoObjects.isEmpty {
} else {

self.fetchImage(self.foodPhotoObjects[indexPath.row] as? PFObject, completionHandler: {
(image, error) -> () in
if image != nil {
cell.mainRestaurantImageView.image = image
cell.mainRestaurantImageView.contentMode = .ScaleAspectFill
cell.mainRestaurantImageView.clipsToBounds = true
}else{
//alert user: no image or put placeholder image
}
})
}

return cell
}

最佳答案

您可以通过使用PFImageView 免费获得此功能,您只需编写更少的代码即可达到预期的效果。只需在设置 file 属性后调用 loadInBackground:

https://parse.com/docs/ios/api/Classes/PFImageView.html

至于 UI 延迟,在 Instruments 中进行分析以确定是什么导致了显着的明显延迟。

关于UITableView 缓慢加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28423747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com