图像在tableview中滚动时重复单元格

图像显示不正确,我有两个Json Api(小学/高)的学校。 我可以追加两个JSON API数据和显示到tableview,tableview工作正常,它显示(初级/高)学校数据。 当我可以滚动tableview图像跳跃和图像加载非常缓慢的图像视图在tableview。

滚动tableview之前就是这样展示的

在这里输入图像说明

在这里输入图像说明

滚动tableview后,它显示这样的

在滚动图像正在跳跃之后,

在这里输入图像说明

这是代码

var kidsdata = [KidDetails]() func getprimarydata(_firsturl: String,firstid:String,updatedate:String) { if errorCode == "0" { if let kid_list = jsonData["students"] as? NSArray { self.kidsdata.removeAll() for i in 0 ..< kid_list.count { if let kid = kid_list[i] as? NSDictionary { let imageURL = url+"/images/" + String(describing: kid["photo"]!) self.kidsdata.append(KidDetails( name:kid["name"] as? String, photo : (imageURL), standard: ((kid["standard"] as? String)! + "std" + " " + (kid["section"] as? String)! + " section ") ))}}}} } func gethighdata(_secondurl:String ,secondid:String,updatedate:String) { if errorCode == "0" { if let kid_list = jsonData["students"] as? NSArray { for i in 0 ..< kid_list.count { if let kid = kid_list[i] as? NSDictionary { let imageURL = url+"/images/" + String(describing: kid["photo"]!) self.kidsdata.append(KidDetails( name:kid["name"] as? String, photo : (imageURL), standard: ((kid["standard"] as? String)! + "th" + " " + (kid["section"] as? String)! + " section ") ) ) } } self.do_table_refresh() } } } func do_table_refresh() { DispatchQueue.main.async(execute: { self.TableView.reloadData() return }) } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell( withIdentifier: "cell", for: indexPath) as! DataTableViewCell cell.selectionStyle = .none cell.ProfileImage?.image = nil let row = (indexPath as NSIndexPath).row let kid = kidsdata[row] as KidDetails cell.NameLabel.text = kid.name cell.ProfileImage.image = UIImage(named: "profile_pic") cell.ProfileImage.downloadImageFrom(link:kid.photo!, contentMode: UIViewContentMode.scaleAspectFill) cell.ClassNameLabel.text = kid.standard return cell } 

我犯了错误请帮助我….!

AlamofireImage处理得很好。 https://github.com/Alamofire/AlamofireImage

 import AlamofireImage func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! DataTableViewCell cell.selectionStyle = .none let kid = kidsdata[indexPath.row] as KidDetails cell.NameLabel.text = kid.name cell.ClassNameLabel.text = kid.standard // assuming cell.ProfileImage is a UIImageView cell.ProfileImage.image = nil let frame = CGSize(width: 50, height: 50) let filter = AspectScaledToFillSizeWithRoundedCornersFilter(size: frame, radius: 5.0) cell.ProfileImage.af_setImage(withURL: urlToImage, placeholderImage: nil, filter: filter, imageTransition: .crossDissolve(0.3), runImageTransitionIfCached: false) return cell }