web-dev-qa-db-ja.com

iOSでUICollectionViewCellのユーザータッチを聞く方法は?

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(インストールされている場合)に送信するようにします

12
malhobayyeb

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を取得するのかわかりません。だから私は少し即興でした:)

37
mustafa