0

我正在编写一个Swift应用程序,在我的 UITableViewController 的每个单元格上显示从服务器获取的照片。

到目前为止,我的代码如下所示:

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

    let cell = detailsPanel.dequeueReusableCellWithIdentifier("cell") as! DetailsCell

    let test:SingleTest =  self.items[indexPath.row] as! SingleTest
    if(test.photo != "") {
        cell.myPhoto.af_setImageWithURL(NSURL(string: test.photo)!)
    }

}

现在,问题是并非每个单元格都存储了一张照片cell.photo。其中一些是空字符串 ( "")。在那种情况下,当我快速滚动表格视图时,我看到那些空UIImageView的 s 充满了来自其他单元格的照片。

对此的快速修复似乎是添加一个else块:

if(test.photo != "") {
    cell.myPhoto.af_setImageWithURL(NSURL(string: test.photo)!)
} //this one below:
else {
    cell.myPhoto.image = UIImage(named: "placeholderImg")
}

现在只要没有照片,placeHolderImg就会在那里显示。但是......有没有办法避免它,只是不在那里显示任何东西?不显示任何内容是指不显示来自不同单元格的图像?

4

1 回答 1

0

您正在重用您的单元格,因此该单元格仍将使用它已加载的前一个图像,除非您将其设置为 nil 或占位符图像。但是我相信你不需要使用 if 语句。您可以使用 af_setImageWithURL 的 placeholderImage 参数。

cell.myPhoto.af_setImageWithURL(NSURL(string: test.photo)!, placeholderImage: image)
于 2016-09-21T01:36:58.240 回答