teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

コメント消し忘れ。

2016/07/26 05:33

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -21,7 +21,7 @@
21
21
  imageview.clipsToBounds = true
22
22
  cell.contentView.addSubview(imageview)
23
23
 
24
- //リクエスト(& requestID保存)
24
+ //リクエスト
25
25
  manager.requestImageForAsset(
26
26
  asset,
27
27
  targetSize: imageview.frame.size, //imageviewのサイズでリクエスト

1

ちっちゃいのください。

2016/07/26 05:33

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -4,4 +4,43 @@
4
4
 
5
5
  Subviewに関しては、removeFromSuperviewでひっぺがして処分していますので、それと同じようにrequestImageForAsset()も処分してやって下さい。リクエストしたときにrequestIDを保存しておいて、cancelImageRequest(requestID)してやればいいと思います。
6
6
 
7
- 他の原因、もしくは、他にも原因があるかも知れませんが。
7
+ 他の原因、もしくは、他にも原因があるかも知れませんが。
8
+
9
+ # ただのメモリ不足?
10
+
11
+ 大きな画像を大量に読み込んでメモリ不足になっているのではないか?という推測。
12
+ 小さいサイズでリクエストするようにします。(requestID関係は一旦削除していいかも)
13
+
14
+ ```swift
15
+ override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
16
+ :
17
+ //imageviewにはcellのサイズを渡す
18
+ let imageview:UIImageView = UIImageView(frame: CGRectMake(1, 1, CGRectGetWidth(cell.frame)-2, CGRectGetHeight(cell.frame)-2))
19
+ //imageview.image = photo //ここでは設定しない
20
+ imageview.contentMode = .ScaleAspectFit //お好みで
21
+ imageview.clipsToBounds = true
22
+ cell.contentView.addSubview(imageview)
23
+
24
+ //リクエスト(& requestID保存)
25
+ manager.requestImageForAsset(
26
+ asset,
27
+ targetSize: imageview.frame.size, //imageviewのサイズでリクエスト
28
+ contentMode: .AspectFit, //imageviewに合わせる?
29
+ options: nil
30
+ ) { (image, info) -> Void in
31
+ //imageviewにセット
32
+ imageview.image = image //読み込んだ画像をセット
33
+ let degraded = (info![PHImageResultIsDegradedKey]?.boolValue)!
34
+ //print(image!.size, degraded)
35
+ if degraded {
36
+ //print(indexPath, "continue...")
37
+ }
38
+ else
39
+ {
40
+ //print(indexPath, "done")
41
+ }
42
+ }
43
+
44
+ return cell
45
+ }
46
+ ```