0

私は、専用の検索機能を備えたアプリのタブバーにUITabBarItemを追加するように求められたアプリに取り組んでいます。これは、アプリ全体ですでに組み込まれている検索 (他のUITabBarItemをタップして他のUITableViewを検索することによる) に追加されます。

さて、最初に頭に浮かぶのは、Apple Human Interface Guidelines ( HIG ) で、次のように述べています。

「アプリケーションの主要な機能であり、個別のモードとして機能する必要がある場合を除き、検索にタブを使用することは避けてください。」

したがって、一般的な考えは回避することですが、それは厳格で迅速なルールではありません. それでも、私はこれをクライアントの注意に向けました。彼らは次のように答えまし。私の答え: 「Apple 独自のアプリは、この種の検索エクスペリエンスを提供します。既にそれらのアプリを使用している人なら誰でも、あなたのアプリの使い方を知っているでしょう。だからこそ、私たちは UE に一貫性を持たせ、HIG に従うよう努めることを望んでいます。」(言うまでもなく、これはアプリ ストアの承認の要件ですが、余談です。)

彼らの2 番目の回答は次のとおりでした。

結構。グローバル検索です。:)

専用の検索UITabBarItemを使用した例を探して、iPhone 独自の App Store モデルに従いました。結果として得られる UI に非常に満足しています。UISearchBarに入力すると、単純なテキストのみの入力と同時に検索される名前の候補リストが表示されます (検索サーバーを圧倒しないように、入力時間の遅延を最小限に抑えて完了します)。検索テキストを調整したり、候補の 1 つをタップして検索用語の代わりに使用したり、単に [検索] ボタンを完全にタップしたりすることができます。結果リストは、各セルにアイコンと役立つメタデータのビットを含む、より洗練された結果セットに置き換えられ、よりフルテキスト形式で検索されます。いつもの具材。UISearchBar をタップするテキストのみの提案を戻します。検索をキャンセルすると、すべてが削除されます。そのままにしておくと、最後のクエリ (結果リスト) が表示可能になります。

それで私はこれをクライアントに提示しました...そして...彼らはそれを気に入っています!! 最後のリクエストは 1 つだけです。「専用の Search UITabBarItemを選択したときに、キーボードがすぐにポップアップすることはありますか? 今はUISearchBarをタップする必要がありますが、それは 1 回のタップが多すぎます。」

(おそらく、既存の検索が実行されていない場合にのみ、これが発生することを望んでいるでしょう。)

最初はこれはもっともらしいと思いました...しかし、その後、他のアプリを調べました。これを行うものは見つかりませんでし。App Store アプリでも、UISearchBarをタップしてキーボードを表示する必要があります。さらに、HIGは次のように述べています。

「ユーザーが検索バーをタップすると、キーボードが表示されます。」

「ユーザーが検索UITabBarItemをタップすると、キーボードが表示されます」ではありません。

さらに、UI は寛容であるべきです。間違えて [その他]リストで別のアイテムを選択するつもりだった場合はどうなりますか? (または、それが適切なタブ バーにあった場合、別のUITabBarItemを選択するつもりだった場合はどうなりますか?) ここで、検索を停止してキャンセルし、キーボードを表示するつもりがなかったとしても、キーボードを閉じる必要があります。

結論として、私は少し引き裂かれており、ベスト プラクティスやその他の POV についてのアイデアを得たいと考えています。この状況であなたはどうしますか?

4

2 に答える 2

0

誰かが私に興味深いアイデアを IM で送ってきました。検索オプションを通常よりほんの少し長くタップ アンド ホールドした場合、またはダブルタップした場合、キーボードが自動的に表示される合図になる可能性があります。それ以外の場合は、iPhone UI エコシステムの残りの部分と同じように動作します。

UITabBarItemUITableViewCellのタップ アンド モーメンタリ ホールドまたはダブルタップを検出できる限り、もっともらしく聞こえます。Option または Cmd を押し続けるのと同等の iPhone。

さらに別の提案: [検索] オプションが [その他]リストにある場合は、キーボードを表示します。適切なタブ バーにある場合(ユーザーがそこに配置したため)、最初はキーボードを表示しないでください。(うーん。それは少し矛盾しているように見えますが、完全を期すためにここで言及しています。)

考え?

于 2009-09-03T20:00:26.117 に答える
0

実際にこれを行うべきかどうかをほとんど無視して、いくつかの答え:

検索フィールドをファーストレスポンダーとして設定することで、キーボードを自動的に表示させることができます。

[mySearchField becomeFirstResponder];

タブ バーに配置できるアイテムは最大で 5 つです。5 つを超える場合は、[その他] アイテムがスペースを占有するため、実際には 4 つしか表示されません。itemsプロパティの UITabBar ドキュメントには次のように記載されています。

この配列に表示される順序でタブ バーに表示されるアイテム (UITabBarItem のインスタンス)。

したがって、次のように、検索項目が ([その他] セクションではなく) バーにあるかどうかを判断できます (コードは検索ビュー コントローラーにあると想定しています)。

UITabBarItem *item = [self tabBarItem];
NSInteger indexOfTabBarItem = [[tabBar items] indexOfObject:item];
BOOL isInMainTabBar = (indexOfTabBarItem > -1) && (indexOfTabBarItem < 4);

個人的には、最初に検索ページに移動したときにキーボードを自動的に表示するのも悪くないと思います。もちろん、問題は、ランダムなものをクリックしてそれが何をするかを確認するだけの場合、ランダムなクリックを再開できるように検索をキャンセルするのが面倒なことです.

編集:くそー、私はあなたの質問を読み違えました-私はあなたが技術的なアドバイスを探していると思っていました。うーん...これは誰かに役立つかもしれません!

于 2009-09-03T20:17:34.250 に答える