質問編集履歴

4

修正

2016/07/26 07:07

投稿

gami
gami

スコア17

test CHANGED
File without changes
test CHANGED
@@ -46,8 +46,6 @@
46
46
 
47
47
  var collectionView:UICollectionView!
48
48
 
49
- var requestId: PHImageRequestID!
50
-
51
49
 
52
50
 
53
51
  override func viewDidLoad() {
@@ -128,7 +126,7 @@
128
126
 
129
127
 
130
128
 
131
- // 画像すべてのAssetを取得
129
+ // 画像すべてのAssetを取得
132
130
 
133
131
  let assets: PHFetchResult = PHAsset.fetchAssetsWithMediaType(.Image, options: options)
134
132
 
@@ -190,34 +188,18 @@
190
188
 
191
189
  }
192
190
 
193
-
194
-
195
-
196
-
197
- if let request = requestId{
198
-
199
- manager.cancelImageRequest(request)
191
+ manager.requestImageForAsset(asset,
192
+
193
+ targetSize: CGSizeMake(CGFloat(asset.pixelWidth) , CGFloat(asset.pixelHeight) ),
194
+
195
+ contentMode: .AspectFill,
196
+
197
+ options: nil) { (image, info) -> Void in
198
+
199
+ photo = image!
200
200
 
201
201
  }
202
202
 
203
-
204
-
205
-
206
-
207
-
208
-
209
- self.requestId = manager.requestImageForAsset(asset,
210
-
211
- targetSize: CGSizeMake(CGFloat(asset.pixelWidth) , CGFloat(asset.pixelHeight) ),
212
-
213
- contentMode: .AspectFill,
214
-
215
- options: nil) { (image, info) -> Void in
216
-
217
- photo = image!
218
-
219
- }
220
-
221
203
 
222
204
 
223
205
  let imageview:UIImageView=UIImageView(frame: CGRectMake(1, 1, (self.view.bounds.width / 4) - 2, (self.view.bounds.width / 4) - 2 ))

3

ミス修正

2016/07/26 07:07

投稿

gami
gami

スコア17

test CHANGED
File without changes
test CHANGED
@@ -46,7 +46,7 @@
46
46
 
47
47
  var collectionView:UICollectionView!
48
48
 
49
- var imageRequests = [NSIndexPath: PHImageRequestID]()
49
+ var requestId: PHImageRequestID!
50
50
 
51
51
 
52
52
 
@@ -194,7 +194,7 @@
194
194
 
195
195
 
196
196
 
197
- if let request = imageRequests[indexPath]{
197
+ if let request = requestId{
198
198
 
199
199
  manager.cancelImageRequest(request)
200
200
 
@@ -204,7 +204,9 @@
204
204
 
205
205
 
206
206
 
207
+
208
+
207
- manager.requestImageForAsset(asset,
209
+ self.requestId = manager.requestImageForAsset(asset,
208
210
 
209
211
  targetSize: CGSizeMake(CGFloat(asset.pixelWidth) , CGFloat(asset.pixelHeight) ),
210
212
 
@@ -216,8 +218,6 @@
216
218
 
217
219
  }
218
220
 
219
-
220
-
221
221
 
222
222
 
223
223
  let imageview:UIImageView=UIImageView(frame: CGRectMake(1, 1, (self.view.bounds.width / 4) - 2, (self.view.bounds.width / 4) - 2 ))

2

cancelImageRequestの呼び出しを追記

2016/07/26 05:36

投稿

gami
gami

スコア17

test CHANGED
File without changes
test CHANGED
@@ -46,6 +46,8 @@
46
46
 
47
47
  var collectionView:UICollectionView!
48
48
 
49
+ var imageRequests = [NSIndexPath: PHImageRequestID]()
50
+
49
51
 
50
52
 
51
53
  override func viewDidLoad() {
@@ -170,6 +172,16 @@
170
172
 
171
173
  cell.backgroundColor = UIColor.brownColor()
172
174
 
175
+ //PHAseetから画像取得のリクエストを投げてcellにセット
176
+
177
+ let asset = photoAssets[indexPath.row]
178
+
179
+ var photo: UIImage?
180
+
181
+ let manager: PHImageManager = PHImageManager()
182
+
183
+
184
+
173
185
 
174
186
 
175
187
  for subview in cell.contentView.subviews{
@@ -180,13 +192,15 @@
180
192
 
181
193
 
182
194
 
183
- //PHAseetから画像取得のリクエストを投げてcellにセット
195
+
184
-
196
+
185
- let asset = photoAssets[indexPath.row]
197
+ if let request = imageRequests[indexPath]{
186
-
187
- var photo: UIImage?
198
+
188
-
189
- let manager: PHImageManager = PHImageManager()
199
+ manager.cancelImageRequest(request)
200
+
201
+ }
202
+
203
+
190
204
 
191
205
 
192
206
 
@@ -198,13 +212,11 @@
198
212
 
199
213
  options: nil) { (image, info) -> Void in
200
214
 
201
-
202
-
203
215
  photo = image!
204
216
 
205
217
  }
206
218
 
207
-
219
+
208
220
 
209
221
 
210
222
 
@@ -222,6 +234,8 @@
222
234
 
223
235
  return cell
224
236
 
237
+
238
+
225
239
  }
226
240
 
227
241
  }

1

小修正

2016/07/26 02:16

投稿

gami
gami

スコア17

test CHANGED
@@ -1 +1 @@
1
- UICollectionView、PHAssetを使ったカメラロールの表示
1
+ UICollectionViewを使ったカメラロールの表示 スクロールでmemory warningが起きる
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [iOS swift]UICollectionView、PHAssetを使ったカメラロールの表示
4
4
 
5
- PHImageManager
5
+ セルにカメラロールの画像を入れこむことは下記のコードで実現できたのですが、メモリの解放がうまくできません。
6
6
 
7
7
 
8
8
 
@@ -10,14 +10,12 @@
10
10
 
11
11
  画像が1000枚程度カメラロールにあり、初期表示は問題ないが素早くスクロールをするとアプリケーションが落ちてしまします。
12
12
 
13
- ・セルを表示するタイミングでPHImageManagerのリクエストを投げているから。
14
-
15
- ・画像をメモリから消してないから。
16
-
17
- かと思ったのですが、うまい表示の方法等ご教授いただけたらと思います。
13
+ 正しい表示の方法、メモリの解放等ご教授いただけたらと思います。
18
14
 
19
15
  よろしくお願いします。
20
16
 
17
+
18
+
21
19
  ```
22
20
 
23
21
  Received memory warning.