Как получить «Фотопленка», «Видео», «Избранное», «Селфи» и «Снимки экрана» в извлечении инструкции PHAssetCollection - swift 4 - PullRequest
0 голосов
/ 18 апреля 2019

Я работаю с Photo Framework и пытаюсь получить все фотографии и видео во всех альбомах на iPhone. Но проблема в том, что я не могу выбрать все альбомы, включая "Фотопленка", "Видео", "Избранное", "Селфи", "Скриншоты" и другие альбомы с помощью fetchAssetCollections заявление. Я только взял другие альбомы

Я перепробовал все album и subtype, но мне это не помогло.

Вот мой код:

var collections: PHFetchResult<PHAssetCollection>!

@objc private func loadPhoto(notification: Notification) {
        if let object = notification.object {
            photoArray.removeAll()

            collections = PHAssetCollection.fetchAssetCollections(with: .album, subtype: .any, options: nil)

            collections.enumerateObjects { (collection, _, _) in
                let photoInAlbum = PHAsset.fetchAssets(in: collection, options: nil)

                photoInAlbum.enumerateObjects({ (asset, _, _) in
                    let imageSize = CGSize(width: 200, height: 200)
                    let photoOption = PHImageRequestOptions()
                    photoOption.deliveryMode = .fastFormat
                    photoOption.isSynchronous = true

                    PHCachingImageManager.default().requestImage(for: asset, targetSize: imageSize, contentMode: .aspectFill, options: photoOption, resultHandler: { (image, info) in
                        self.photoArray.append(image!)
                    })
                })
            }
            listPhotoView.reloadData()
        }
    }

I expect the output is all the albums including "Camera Roll", "Videos", "Favorites", "Selfies", "Screenshots" and other albums
Sorry about my bad English

1 Ответ

0 голосов
/ 19 мая 2019

Изменение

collections = PHAssetCollection.fetchAssetCollections(with: .album, subtype: .any, options: nil)

до

collections = PHAssetCollection.fetchAssetCollections(with: . smartAlbum, subtype: .any, options: nil)

Все альбомы, которые вы хотите перечислить, являются "Умными Альбомами". .album относится к созданным пользователем альбомам.

...