1

我有一个非常简单的 iOS 应用程序 - 它在这个 TableView 中有 TableView 和自定义单元格列表。每个单元格中都有一个 ImageView(使用下载的方法加载图像)。

将我的 Xcode 更新到 8 版本并将项目转换为 Swift 2.3 后,我得到了非常有趣的结果 - 我重新加载 TableView 中的项目列表 - 屏幕上的第一个单元格没有任何图像,当我开始向下滚动时,我看到其他图像加载正常。当滚动回顶部时 - 所有图像都很好。

我还尝试将图像加载方式更改为名为 SDWebImage 的库,但结果是相同的。怎么了?

extension UIImageView {
func downloadedFrom(link link:String, contentMode mode: UIViewContentMode) {
    guard
        let url = NSURL(string: link)
        else {return}
    contentMode = mode
    NSURLSession.sharedSession().dataTaskWithURL(url, completionHandler: { (data, response, error) -> Void in
        guard
            let httpURLResponse = response as? NSHTTPURLResponse where httpURLResponse.statusCode == 200,
            let mimeType = response?.MIMEType where mimeType.hasPrefix("image"),
            let data = data where error == nil,
            let image = UIImage(data: data)
            else { return }
        dispatch_async(dispatch_get_main_queue()) { () -> Void in
            self.image = image
        }
    }).resume()
}}
4

1 回答 1

1

问题不在于加载方法,而在于图像的圆角。Xcode 8 和 iOS 10 中的圆角问题可以在这里找到

于 2016-10-18T16:12:35.280 回答