画像を表示する UIPageViewController があります。ユーザーが現在閲覧している希望の画像をメールする機会を設定しました。このため、ユーザーが画面の中央領域を 1 回タップすると、「メール」というタイトルのバー ボタン項目を含むタブ バーが表示されます。そして、このボタンが押されると、画像がメールコンポーザに添付されます。しかし、ここで少し問題があります。タップするとバーボタンが左端にあるため、ページカールが発生し、メールコンポーザーを取得できません。より正確には、ボタンをタップできません。このボタンが押されたときにページがカールするのを防ぐにはどうすればよいですか?
1 に答える
2
この問題を克服する方法はいくつかあります。2番目のソリューションは実装が簡単です。
1つ目は、ページビューコントローラー用に定義されたジェスチャレコグナイザーにアクセスし(ジェスチャレコグナイザーの配列を返す「gestureRecognizers」プロパティから)、「タップタイプ」ジェスチャを検索して、ビューコントローラーにデリゲートを割り当てることです。 。このデリゲートはメソッドを実装します
ジェスチャ認識器:shouldReceiveTouch:タブバーの位置でタップが発生したかどうかを確認し、その場合はNOを返すため、ジェスチャはトリガーされません。それでもタップが必要であるが、タブバー領域の外側にある場合、デリゲートはYESを返します。
もう1つの可能性は、新しいタップジェスチャレコグナイザを定義してタブバーに割り当てることです。このような場合、(タブバーにある)ボタンをタップすると、タップジェスチャに割り当てたターゲットセレクターがトリガーされます。明らかに、このセレクターは、それを超えるジェスチャへの伝播を回避することを目的としているため、何もしません(これがデフォルトの動作です)。
私の答えはあなたのリクエストから遅すぎたと思いますので、より良い解決策を見つけたら投稿してください!
于 2012-05-18T12:08:27.253 に答える