• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Swiftについて教えてください)

UICollectionViewCellに枠を付ける方法

このQ&Aのポイント
  • UICollectionViewCellに枠をつける方法について教えてください
  • SwiftのUICollectionViewのセルにタッチした写真に枠を表示する方法について教えてください
  • UICollectionViewのセルに枠を表示するためのコードについて教えてください

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

No.1です。 もしかしたら「cellForItemAtIndexPath」をWebで検索して勘違いされるかもしれないので 念のため補足しますが、delegateメソッドのcellForItemAtIndexPathを使うのではなく、 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UICollectionView_class/index.html#//apple_ref/occ/instm/UICollectionView/cellForItemAtIndexPath: で説明されているメソッドを使います。 具体的には var cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath)as! UICollectionViewCell じゃなくて let cell = collectionView.cellForItemAtIndexPath(indexPath)! とすればいいです。

dkong
質問者

お礼

回答ありがとうございます。 教えていただいたように let cell = collectionView.cellForItemAtIndexPath(indexPath)! とすればタッチした写真に枠を付けることができました。補足質問よろしくお願いします。

dkong
質問者

補足

タッチした写真に枠を付けることができたのですが、スクロールしていくとタッチしてない写真にも枠が付いてしまってます。cellの再利用とか、dequeueReusableCellWithReuseIdentifierなどがキーワードかと思い調べてみたのですが、よくわらかりませんでした。よろしくお願いします。

その他の回答 (2)

回答No.3

No.2の補足の質問について回答します。 > タッチした写真に枠を付けることができたのですが、スクロールしていくとタッチしてない写真にも枠が付いてしまってます。cellの再利用とか、dequeueReusableCellWithReuseIdentifierなどがキーワードかと思い調べてみたのですが、よくわらかりませんでした。 どこを調べてどういう点がわからなかったのか、質問の際に具体的なURL等を示して説明してくれたらアドバイスしやすいんですが、dequeueReusableCellWithReuseIdentifierは以前使用していたセルを再利用するということが理解できているんだったら、以前に使用したセルに枠をつけたらそれがそのまま再利用されるんだろうということも理解できるはずです。 その枠を消したいんだったら、dequeueReusableCellWithReuseIdentifierでセルを取得した時に、枠を消してから利用すればいいだけです。

dkong
質問者

お礼

回答ありがとうございます。セルを取得した時に、枠を消してから利用すればできました。dequeueReusableCellWithReuseIdentifierの部分を取り違えてました。

回答No.1

dequeueReusableCellWithReuseIdentifierは、現在のindexPath位置にあるセルを取得するメソッドではなく、indexPath位置に使えるセルを新しく確保するメソッドです。 現在のindexPath位置に表示されているセルを取得したいのであれば、cellForItemAtIndexPathを使います。

関連するQ&A