使用SDWebImage

时间:2015-07-21 18:02:35

标签: ios swift sdwebimage

我正在使用SDWebImage库为用户的个人资料加载图像。奇怪的是,当我用5张照片打开一个配置文件时,只有最后一张图像显示在滚动视图中(您可以滚动浏览全宽配置文件图片)。但是,如果我关闭视图并重新打开,所有图像都在那里并且看起来很完美。知道发生了什么事吗?这是代码:

func getPhotos(user:PFUser, forKey:NSMutableArray) {

    var p = 0

    for f in forKey {

        if let pic = user.objectForKey(f as! String) as? PFFile {

            var width = Int(phonewidth)
            photoscroll.contentSize = CGSize(width: CGFloat((p + 1) * width), height: phonewidth)
            pageControl.numberOfPages = p + 1

            var position = CGFloat(p*width)

            var imgview = UIImageView(frame: CGRectMake(position, 0, phonewidth, phonewidth))



            imgview.sd_setImageWithURL(NSURL(string: pic.url), completed: {(image: UIImage!, error: NSError!, cacheType: SDImageCacheType, imageURL: NSURL!) in
                imgview.image = image
                self.photoscroll.addSubview(imgview)
                self.userpics.append(image)
                p++
                println("Added: \(f), URL: \(pic.url)" )
            })
        }
    }
}

1 个答案:

答案 0 :(得分:0)

你太晚递增p,完成块不会立即运行,所以你的循环每次运行时都会有相同的p值,你的图像视图将全部堆叠在上面彼此。

p++放在块外。