回答編集履歴

1

サンプルコードを追記

2018/06/27 01:18

投稿

takabosoft
takabosoft

スコア8356

test CHANGED
@@ -17,3 +17,81 @@
17
17
 
18
18
 
19
19
  あとは質問文に書いてある内容と同じ方法でassetから画像が取れます。
20
+
21
+
22
+
23
+ ---
24
+
25
+ 2018/06/27追記
26
+
27
+
28
+
29
+ サンプルを載せておきます。
30
+
31
+ エラーチェック等は省いていますので、ご了承ください。
32
+
33
+
34
+
35
+ ```swift
36
+
37
+ let imgManager = PHImageManager.default()
38
+
39
+
40
+
41
+ let requestOptions = PHImageRequestOptions()
42
+
43
+ requestOptions.isSynchronous = true
44
+
45
+ requestOptions.deliveryMode = .highQualityFormat
46
+
47
+
48
+
49
+ let fetchOptions = PHFetchOptions()
50
+
51
+ fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
52
+
53
+
54
+
55
+ // アルバムをフェッチ
56
+
57
+ let assetCollections = PHAssetCollection.fetchAssetCollections(with: .album, subtype: .albumRegular, options: nil)
58
+
59
+
60
+
61
+ assetCollections.enumerateObjects { assetCollection, _, _ in
62
+
63
+
64
+
65
+ // アルバムタイトル
66
+
67
+ print(assetCollection.localizedTitle ?? "")
68
+
69
+
70
+
71
+ // アセットをフェッチ
72
+
73
+ let assets = PHAsset.fetchAssets(in: assetCollection, options: fetchOptions)
74
+
75
+
76
+
77
+ assets.enumerateObjects { asset, _, _ in
78
+
79
+ // 画像のリクエスト
80
+
81
+ imgManager.requestImage(for: asset, targetSize: CGSize(width: 200, height: 200), contentMode:
82
+
83
+ .aspectFill, options: requestOptions, resultHandler: { img, _ in
84
+
85
+ if let img = img {
86
+
87
+ print("画像の取得に成功")
88
+
89
+ }
90
+
91
+ })
92
+
93
+ }
94
+
95
+ }
96
+
97
+ ```