У меня есть UICollectionView
, который загружает изображения памяти iPad и отображает их в сетке, например, в приложении Apple Photos. В UICollectionViewCell
загружает эскизы асинхронно:Медленный UICollectionView с асинхронной загрузкой
func setImage(img:String){
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
//load the image in the background
let image = UIImage(contentsOfFile: img)
//when done, assign it to the cell's UIImageView
dispatch_async(dispatch_get_main_queue(), {
if let imageView = self.imageView{
imageView.image = UIImage(contentsOfFile: img)
}
})
})
}
Однако при прокрутке вид запаздывает, как будто он ждет изображения для загрузки, особенно с Retina графикой. Ячейки и изображения имеют размер 240x180 пикселей. Что-то не так с загрузкой изображения выше или нужно сделать еще одну оптимизацию?
ОБНОВЛЕНИЕ: Время профилировщик результаты
Изменить приоритет вашего потока от DISPATCH_QUEUE_PRIORITY_DEFAULT к DISPATCH_QUEUE_PRIORITY_BACKGROUND ИЛИ DISPATCH_QUEUE_PRIORITY_LOW, и посмотреть, если ваши взгляды коллекция выполняет лучше – EridB
я пробовал, это не так. – Hristo