Проблемы с загрузкой изображений с помощью 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)" )
            })
        }
    }
}

person cb428    schedule 21.07.2015    source источник
comment
Поместите точку останова в блок завершения загрузки изображения. Достигается ли когда-нибудь точка останова?   -  person Antonio    schedule 21.07.2015
comment
Вы имеете в виду после увеличения переменной p?   -  person cb428    schedule 21.07.2015


Ответы (1)


Вы увеличиваете p слишком поздно, блок завершения не будет запускаться немедленно, поэтому ваш цикл будет иметь одно и то же значение для p каждый раз, когда он запускается, и все ваши изображения будут накладываться друг на друга.

Поместите p++ за пределы блока.

person dan    schedule 21.07.2015