私はほんの数枚のアルバムを得るためにこれを使用しますが、あなたはより多くを得ることができます。
private func setupPhotos() {
let fetchOptions = PHFetchOptions()
let smartAlbums = PHAssetCollection.fetchAssetCollectionsWithType(.SmartAlbum, subtype: .Any, options: fetchOptions)
let topLevelfetchOptions = PHFetchOptions()
let topLevelUserCollections = PHCollectionList.fetchTopLevelUserCollectionsWithOptions(topLevelfetchOptions)
let allAlbums = [topLevelUserCollections, smartAlbums]
for i in 0 ..< allAlbums.count {
let result = allAlbums[i]
result.enumerateObjectsUsingBlock { (asset, index, stop) -> Void in
if let a = asset as? PHAssetCollection {
let opts = PHFetchOptions()
if #available(iOS 9.0, *) {
opts.fetchLimit = 1
}
let ass = PHAsset.fetchAssetsInAssetCollection(a, options: opts)
if let _ = ass.firstObject {
let obj = MYSpecialAssetContainerStruct(asset: a)
self.data.append(obj)
}
}
if i == (allAlbums.count - 1) && index == (result.count - 1) {
self.data.sortInPlace({ (a, b) -> Bool in
return a.asset.localizedTitle < b.asset.localizedTitle
})
self.tableView.reloadData()
}
}
}
}
EDIT:これはあなたのアルバムのPHAssetCollections
を取得します、そして、私はこの方法を持っている細胞に入れて最新の画像サムネイルをアルバムから取得する。
private func downloadAndSetImage(asset: MYSpecialAssetContainerStruct) {
if asset.thumbnail == nil {
let imageRequestOptions = PHImageRequestOptions()
imageRequestOptions.networkAccessAllowed = false
imageRequestOptions.synchronous = true
imageRequestOptions.deliveryMode = .HighQualityFormat
PHImageManager.defaultManager().requestImageForAsset(
asset.asset,
targetSize: self.targetImageSize(),
contentMode: .AspectFit,
options: imageRequestOptions,
resultHandler: { (img, info) -> Void in
asset.thumbnail = img
self.albumImage.image = asset.thumbnail
})
} else {
albumImage.image = asset.thumbnail
}
}
あなたがここからの回答を見ることができます:私は取得する必要がありますhttp://stackoverflow.com/questions/32169185/how-to-fetch-all-images-from-custom-photo-album-swift – fatihyildizhan
アルバムはまずアルバム内の画像ではありません。私の場合、アルバム名はわかりません –
写真フレームワークはあなたのためにそれを完了します。従来の方法を使わずにアルバムや写真などを取り込むことができます。あなた自身の写真ピッカーを構築するために非常に不可欠な – NSNoob