UIImageViewオブジェクトのリストを保持するUICollectionView
を実装しました。
ユーザーが画像に触れたときに特定のURLでYouTubeに移動してもらいたい。
しかし、それぞれにタッチリスナーを追加する方法がわかりませんICollectionViewCell:
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
var cell: PhotoCell = collectionView.dequeueReusableCellWithReuseIdentifier("PhotoCell", forIndexPath: indexPath) as PhotoCell
cell.loadImage(thumbnailFileURLs[indexPath.row], originalImagePath: originalFileURLs[indexPath.row])
return cell
}
私のPhotoCellクラスには、youtubeへのURLを保持するメンバー変数があります。
各PhotoCellオブジェクトについて、押されたときにアプリがユーザーをyoutube.comウェブサイトまたはAPP(インストールされている場合)に送信するようにします
UICollectionViewDelegate
プロトコルメソッドcollectionView(_:didSelectItemAtIndexPath:)
を実装する必要があります。コレクションビューのセルの1つを押すと、このメソッドが呼び出されます。ここにサンプル実装があります
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
let url = thumbnailFileURLS[indexPath.item]
if UIApplication.sharedApplication().canOpenURL(url) {
UIApplication.sharedApplication().openURL(url)
}
}
ところで、私はあなたがどこでURLを取得するのかわかりません。だから私は少し即興でした:)