gpt4 book ai didi

ios - 滚动时图像无法正确显示 iOS Swift

转载 作者:行者123 更新时间:2023-11-30 13:27:22 25 4
gpt4 key购买 nike

在我的应用程序中,我有带有部分的tableview。问题出在图像上。当用户滚动列表时,显示的图像不正确。我知道问题是由于回收造成的,但我仍然找不到任何解决方案。

代码

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

let myeventCell = self.tableView.dequeueReusableCellWithIdentifier("MyEventsTableViewCell", forIndexPath: indexPath) as! MyEventsTableViewCell

myeventCell.wedImage.clipsToBounds=true;

myeventCell.tag=indexPath.row+indexPath.section;

//to download image
if wedImgDownload[indexPath.section][indexPath.row] == false

{

// myeventCell.wedImage.image = UIImage(data: self.webImgData[indexPath.section][indexPath.row]);

if let url = NSURL(string: wedImageUrl[indexPath.section][indexPath.row] as String) {

let request = NSURLRequest(URL: url)

NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) {

(response: NSURLResponse?, data: NSData?, error: NSError?) -> Void in

if let imageData = data as NSData? {

if myeventCell.tag == indexPath.row+indexPath.section {

self.wedImgDownload[indexPath.section].removeAtIndex(indexPath.row)

self.wedImgDownload[indexPath.section].insert(true, atIndex: indexPath.row)

self.webImgData[indexPath.section].insert(data!, atIndex: indexPath.row)



myeventCell.wedImage.image = UIImage(data: imageData);

}

}

}

}

}

else{

if self.webImgData[indexPath.section][indexPath.row] != ""{

if myeventCell.tag == indexPath.row+indexPath.section {

myeventCell.wedImage.image = UIImage(data: self.webImgData[indexPath.section][indexPath.row])

}

}



}



return myeventCell;

}

请让我知道如何解决这个问题?

最佳答案

这是因为细胞被重复使用。每次重复使用这些单元时都会启动请求。由于请求是异步的,因此无法确定请求完成的顺序。一旦请求完成并设置了图像,单元格就会被重用并在当前请求正在进行时显示上一个图像。

NSURLConnection 已弃用,您应该使用 NSURLSession。您将需要缓存这些图像,而不是每次显示它们时都启动请求。您还需要在每次重复使用单元格时清除图像,以便在显示时不会显示上一个图像。

有许多开源库可以完成这些事情,并且经过了数百万用户的良好测试和使用。除非项目有硬性要求,否则不利用它们是愚蠢的。

https://github.com/pinterest/PINRemoteImage

https://github.com/rs/SDWebImage

https://github.com/Alamofire/AlamofireImage

关于ios - 滚动时图像无法正确显示 iOS Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37003407/

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