gpt4 book ai didi

TableView中的IOS图像有什么方法可以提高性能

转载 作者:行者123 更新时间:2023-11-28 06:20:28 24 4
gpt4 key购买 nike

我有一个由 Json 填充的 tableView。返回的字段之一具有它需要下载的图像的完整 URL。我这样做了,一切正常,但有时当我向下滚动时,您会在 TableView 行中看到错误的图像,然后它会在 2 秒后变回原样,这发生在我看到大约 12 或 13 个图像之后,然后它开始变慢。我想更正这一点。我到目前为止的代码是这样的。

stream_image_string:它有图片URL的完整路径

var Stream_Cache = NSCache() : 缓存图片

下面的代码在 TableView -> UITableViewCell 中

再次一切正常,只是想知道我是否可以获得更好的性能。

    // if more than 0 then it has a URL 
if stream_image_string[indexPath.row].characters.count > 0 {
if let image = Stream_Cache.object(forKey: stream_image_string[indexPath.row] as AnyObject) as? UIImage {
cell.stream_image.image = image
} else {
if cell.stream_image != nil {
let strCellImageURL = self.stream_image_string[indexPath.row]
let imgURL: NSURL = NSURL(string: strCellImageURL)!
let request:NSURLRequest = NSURLRequest(url: imgURL as URL)
let config = URLSessionConfiguration.default
let session = URLSession(configuration: config)
cell.Stream_Image_Height.constant = 400
let task = session.dataTask(with: request as URLRequest, completionHandler: {(data, response, error) in
DispatchQueue.main.async(execute: { () -> Void in

if data != nil {
cell.stream_image.image = UIImage(data: data!)
} else {
cell.Stream_Image_Height.constant = 0
}


})
});

task.resume()
}
}
} else {

cell.Stream_Image_Height.constant = 0
}

最佳答案

您可以将图像设置为占位符(而不是 nil)并使用预取(请参阅 WWDC'16 session 219)以更早地开始获取图像:

    protocol UITableViewDataSourcePrefetching {
func tableView(_ tableView: UITableView, prefetchRowsAt indexPaths: [NSIndexPath])

optional func tableView(_ tableView: UITableView, cancelPrefetchingForRowsAt indexPaths:
[NSIndexPath])

}

关于TableView中的IOS图像有什么方法可以提高性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43742268/

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