У меня есть этот код, который я использую в коллекцииView для получения изображения.Изображение PHAsset отображается в пикселях при показе его в CollectionView
// Code in CollectionView's cellForItemAtIndex
// Image
PHImageManager.defaultManager().getPhoto(asset, size: cell.thumbnail.frame.size) { (image) in
if let properImage = image
{
dispatch_async(dispatch_get_main_queue(), {
cell.thumbnail.image = properImage
})
}
else
{
cell.thumbnail.image = UIImage()
}
}
И getPhoto
Метод.
//MARK: PHImageManager
extension PHImageManager
{
func getPhoto(asset : PHAsset, size : CGSize, completion : (image : UIImage?) ->())
{
let options = PHImageRequestOptions()
options.networkAccessAllowed = true
options.synchronous = false
options.resizeMode = PHImageRequestOptionsResizeMode.Exact
options.deliveryMode = PHImageRequestOptionsDeliveryMode.HighQualityFormat
_ = self.requestImageForAsset(asset, targetSize: size, contentMode: PHImageContentMode.AspectFit, options: options, resultHandler: {
result , _ in
if let resultValue = result as UIImage?
{
completion(image: resultValue)
}
else
{
completion(image: nil)
}
})
}
}
Всякий раз, когда я загружаю изображения в collectionView, я вижу, что изображения видимой ячейки пикселируются. Когда я просматриваю изображения, они выглядели правильно с изображением высокого качества.
Также я пробовал все комбинации resizeMode
и deliveryMode
, не помог мне. Я попытался включить synchronous
.
Я хочу показать hight quality images in the first time
. Я не хочу прокручивать collectionView
, чтобы получить его.
Есть ли способ решить это? Заранее спасибо.