7

現在、iPad アプリのプロジェクトに取り組んでいます。メイン画面は のサブクラスであるUICollectionViewです。今、ポップアップするを追加したいと思いました。AlbumCellUICollectionViewCellUILongPressGestureRecognizerUIActionSheet

最初に で試してみUICollectionViewControllerましたが、それらを追加するのに適切な場所ではないことがわかりました。AlbumCellだから私の最善の推測は、クラスにジェスチャーを追加することですか? 次に、おそらくそれ自体をデリゲートとして追加するため、独自のジェスチャーをキャッチします。

これまでのところ、これは良いアプローチですか?

ジェスチャーをキャッチしたら、UIActionSheet. UICollectionViewControllerこれで、編集モードでユーザーがセルを選択したときに開きます。しかし、今のように でメソッドを呼び出しUICollectionViewControllerて開く必要がありますか? それとも、セルはそれ自身を処理する必要がありUIActionSheetますか?

結局、私はUICollectionViewController何をすべきか、彼UIActionSheetに . それとどのようにAlbumCell「通信」する必要がありますか?

これは、このユース ケースに限らず、私が何度も苦労してきたことです。アプローチは近いですか、それともそれらのアクションをまったく異なる方法で処理する必要がありますか?

4

1 に答える 1

13

で使用UILongPressGestureRecognizerするUITableViewのと同じ方法を採用できます。

基本的に、 1つの認識機能を設定します。セレクターで、を使用しindexPathForItemAtPoint:て、ユーザーが押していたインデックスパスを確認します。最後に、ユーザーがセルを押している(セル間のスペースを押していない)場合は、UIActionSheet好きなように提示します。

于 2012-09-21T11:31:53.017 に答える