2012-04-22 14 views
1

イメージを表示するUIPageViewControllerがあります。ユーザーが現在表示している画像をメールで送信する機会を設けました。これに対して、ユーザが画面の中央領域を一度タップすると、「メール」と題されたバーボタン項目がタブバーに現れる。このボタンを押すと画像がメール作成者に添付されます。しかし、私はここで少し問題があります。私はそれをタップするときにバーのボタンが左端にあるので、ページのカールが起こり、私はメールの作曲家を得ることができません - より正確には、ボタンをタップすることはできません。このボタンを押すと、ページカールをどのように防ぐことができますか?IOS - PageViewControllerのページカールを防ぐ

答えて

2

この問題を解決する方法はいくつかあります。 2番目のソリューションは実装が簡単です。

最初のものは、ページビューコントローラー(ジェスチャー認識子の配列を返す "gestureRecognizers"プロパティーから)に定義されたジェスチャー認識子にアクセスし、 "タップタイプ"ジェスチャーを検索し、それらに代理人を割り当てますあなたのビューコントローラに。このデリゲートはメソッド

gestureRecognizer:shouldReceiveTouch:
を実装し、タップがタブバーの位置に発生したかどうかをチェックし、そのような場合はNOを返し、ジェスチャはトリガーされません。あなたの代理人は、まだタップが必要な場合はYESを返しますが、それはタブバーの領域外です。

もう1つの可能性は、新しいタップジェスチャ認識器を定義し、それをタブバーに割り当てることです。このような場合、タブバーにあるボタンをタップすると、タップジェスチャーに割り当てたターゲットセレクターがトリガーされます。明らかに、このセレクタは、その目的がそれを超えているジェスチャへの伝播を避けることにすぎないので、何もしません(これがデフォルト動作です)。

私の回答はあなたの要求から遅すぎると思います。もしあなたがより良い解決策を見つけたら、それを投稿してください!