2017-04-25 4 views
-1

各セルにuiscrollviewを持つコレクションビューを実装しようとしていて、各スクロールビューにいくつかの写真があります。UIScrollViewをセルとして使用したCollectionView

これは、それがこれまでに見える方法です:

http://i.imgur.com/Bwch5E3.png

はCollectionViewは縦にスクロール可能であり、各セルは、水平方向にスクロール可能です。

注:写真はクリック可能なボタンです!

私はそれをこのようにしたい:

、ユーザが任意のセル内の画像をクリックすると、それが拡大し、集団ビューの上にポップアップとして表示されます。どのボタンが押されているかを確認することはかなり難しくなっています。クリックとその起源を観察する簡単なソリューションはありますか?

答えて

0

あなたは単にここ

@objc func handleButtonTap(_ button: UIButton)

buttonのようなパラメータをセレクタを渡すことができ、タップを処理するために、ターゲット・アクションのアプローチを使用する場合はタップボタンへの参照です。

あなたは使用してボタンにターゲットを追加することができます。

button.addTarget(self, action:#selector(handleButtonTap), for: .touchUpInside)

EDIT:あなたはIndexPathを確認したい場合は

あなたがセレクタに追加のparam forEvent: UIEventを提供し、一緒にこのイベントを使用することができます次の内線番号

extension UICollectionView { 

    func indexPath(forEvent: UIEvent) -> IndexPath? { 
     return forEvent.allTouches? 
      .first 
      .map { $0.location(in: self) } 
      .flatMap { indexPathForItem(at: $0) } 
    } 
} 
+0

ありがとうございます。私はセレクターについても考えました。セレクタを使用すると、どのボタンがクリックされたかがわかります。しかし、どのようにこのボタンがどこにあるのか知っていますか?つまり、コレクションビューの行とuiscrollviewの番号(?)ですか? – PlovIsLove

+0

私はボタンのカスタマイズについて考えています。おそらく、私はそれに追加することができ、後でセレクタで読むことができる追加のパラメータを持つUIButtonXのいくつかの種類を作成する必要があります。しかし、まだ最良の方法ではない、と私は思います。 – PlovIsLove

+0

または、最も簡単な方法は、各ボタンにタグを追加することです。しかし、もっと良い解決策があるはずです。 – PlovIsLove

関連する問題