ポップオーバーを閉じて、ワンタップで新しいポップオーバーを開きます
-
29-10-2019 - |
質問
Appleの「モバイルヒューマンインターフェイスガイドライン」は、ポップオーバーについて次のように述べています。
可能であれば、1つのポップオーバーを閉じて新しいポップオーバーを開くことを許可します ワンタップで。この動作は、複数の場合に特に望ましいです。 さまざまなバーボタンがそれぞれポップオーバーを開きます。 余分なタップをする必要がありません。
私が今考えることができる唯一の解決策は、ポップオーバーを閉じるときにタッチの位置を追跡し、それが別のボタンの位置であったかどうかを確認することです。 これを行う簡単な方法はありますか?
PS:投稿する前に、stackoverflowで検索し、かなりの時間をかけてグーグルで検索しました。申し訳ありませんが、これが以前にここで尋ねられた場合。
更新
私は自分自身をうまく説明しなかったと思います。ボタンが3つあるとしましょう。それらのすべてがポップオーバーを開きます。ユーザーがボタン#1をタップすると、ポップオーバーが開きます。ポップオーバーが開いている間に、ユーザーはボタン#2をタップします。ポップオーバーは閉じられ(ユーザーがポップオーバーの外側をタップしたため-非モーダルポップオーバーのデフォルトの動作)、ユーザーがボタン#2をクリックしたため、新しいポップオーバーが開きます。ポップオーバーを閉じるために1回、新しいポップオーバーを開くために2回、2回タップする必要はありません。
2回目の更新
自分がやろうとしていることを再現するために、簡単なダミーを作成しました。ユーザーがボタンをタップしてポップオーバーが開いている場合、ポップオーバーを開くメソッドは呼び出されません。したがって、ユーザーは2番目のポップオーバーを開くために2回クリックする必要があります。何かアイデアはありますか? ジェネラコディセタグプレ
解決
ツールバーでバーボタンアイテムを使用する場合、別のバーボタンアイテムをタップしても、開いているポップオーバーは自動的に閉じられません。このような状況では、表示されているポップオーバーを閉じて、もう1つのポップオーバーを1つのステップで開く必要があります。
他のヒント
お役に立てば幸いです
3つのボタンがあり、それぞれがポップアップを開くとします。ポップアップが現在開いているかどうかを追跡する状態変数を使用できます。各「ポップアップを開く」メソッド内で、新しいポップアップを開く前に、既存のメソッドを閉じます(開いている場合)。