2016-07-04 66 views
0

我有一個單元格圖像的問題。我在波紋管中描述它。
具有包含1000個單元格的表格的屏幕。
每個單元由a)圖像b)標籤組成。
圖像和標籤數據來自json。
通過使用AFNetwork我錢包json和綁定標籤和圖像。問題在於形象。標籤完美結合。從json的圖像URL也正確。但在滾動開始時顯示先前的單元格圖像。 第一次滾動不開始時所有的圖像都完美顯示。但滾動問題開始後,顯示以前的細胞圖像。滾動表格單元格圖像後顯示以前的圖像快速。雖然圖像的URL顯示正確

代碼:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    if self.arrPostImage![indexPath.row] as! String == "" 
    { 
     let cell1: CellNewNoImage = tableView.dequeueReusableCellWithIdentifier("cell2") as! CellNewNoImage 
     return cell1 
    } 
    else 
    { 
     let cell1: CellForMyActivityMainTableView = tableView.dequeueReusableCellWithIdentifier("cell") as! CellForMyActivityMainTableView 
     cell1.title.text = self.arrTitle![indexPath.row] as? String 
     cell1.postDate.text = self.arrPostDate![indexPath.row] as? String 
     cell1.postDescription.text = self.arrPostDescription![indexPath.row] as? String 

     //=========== Problem Start ====================   
     self.arrPostPersonImg![indexPath.row] = self.arrPostPersonImg![indexPath.row].stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())! 
     let imgPath = self.arrPostPersonImg![indexPath.row] 
     let url12 = NSURL(string:imgPath as! String) 
     getDataFromUrl(url12!) { (data, response, error) in 
     dispatch_async(dispatch_get_main_queue()) {() -> Void in 
      guard let data = data where error == nil else { return } 
      cell1.postPersonImg.image = UIImage(data: data) 
     } 
    } 
    self.arrPostImage![indexPath.row] = self.arrPostImage![indexPath.row].stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())! 
    let imgPath2 = self.arrPostImage![indexPath.row] 
    let url122 = NSURL(string:imgPath2 as! String) 
    if let url = NSURL(string:imgPath2 as! String) { 
    if let data = NSData(contentsOfURL: url) { 
     cell1.postImage.image = UIImage(data: data) 
    }   
} 
return cell1 
} 

}

func getDataFromUrl(url:NSURL, completion: ((data: NSData?, response: NSURLResponse?, error: NSError?) -> Void)) 
{ 
    NSURLSession.sharedSession().dataTaskWithURL(url) 
    { (data, response, error) in 
     completion(data: data, response: response, error: error) 
    }.resume() 
} 
+0

你可能想看看http://stackoverflow.com/questions/12381991/ios-cache-policy –

回答

1

當您使用URL 設置圖像視圖圖像無圖像路徑之前設置你的postPersonImage並嘗試。像

cell1.postPersonImg.image = nil