it-swarm.com.de

Filtern und Suchen mit UISearchBar auf dem iPhone?

Gibt es für die iPhone-Entwicklung ein UI/UX-Muster, dem ich mit UISearchBar folgen sollte, um sowohl das Filtern als auch das Suchen zu ermöglichen?

Mein Anwendungsfall ist ein Bildschirm, auf dem wir in der Nähe in einem UITableView nahe gelegenen Restaurant von Yelp anzeigen. Über den Restaurants haben wir eine Suchleiste. Wenn der Benutzer diesen Bildschirm zum ersten Mal anzeigt, werden die nächsten 30 Restaurants von Yelp angezeigt. Jetzt haben wir über dem UITableView ein UISearchBar; Wenn Sie Text in die Suchleiste eingeben, werden die etwa 30 angezeigten Restaurants gefiltert (z. B. das Filtern Ihrer Kontakte). Wenn Sie sich jedoch in einer Stadt mit einer hohen Dichte an Restaurants befinden, suchen Sie möglicherweise nach einem Restaurant, das nicht auf dieser Liste steht. Jetzt möchte ich, dass die Suchleiste nicht filtert, sondern tatsächlich sucht, wobei ich ihre Eingabe als Abfrageparameter in einer HTTP-Anfrage an Yelp verwenden kann, um das tatsächlich gewünschte Restaurant abzurufen.

Irgendwelche Muster oder Inspirationen, wie man das am besten macht? Das iPhone HIG gibt an, dass ich ein "Ergebnislistensymbol" für die Suchleiste aktivieren kann, das "das Vorhandensein von Suchergebnissen anzeigt. Wenn Benutzer auf das Ergebnislistensymbol tippen, kann Ihre App die Ergebnisse ihrer letzten Suche anzeigen." Bedeutet dies, dass die Suchtaste, die die Tastatur wirklich filtert, und das Drücken des Ergebnissistensymbols tatsächlich eine Suche durchführt? Irgendwelche Beispiele für seine Verwendung irgendwo?

Im Moment neige ich dazu, eine Zeile "Suche nach einem Restaurant ..." über den ungefähr 30 ursprünglich angezeigten Restaurants anzuzeigen. Wenn der Benutzer darauf drückt, wechselt er zu einem anderen Bildschirm mit einer Suchleiste oben. Immer wenn sie die Suchleiste aktivieren und die Suchtaste auf der Tastatur drücken, wird eine neue Abfrage an Yelp gesendet. Beachten Sie, dass dies im Grunde genommen das Filtern auf beiden Bildschirmen überflüssig macht (obwohl letzteres implizit durch Ihre Abfrage gefiltert wird), aber zumindest verständlich ist.

5
shadowmatter

Gute Frage. Ich verstehe das "Ergebnislistensymbol" nicht vollständig. Imo ist es jedoch natürlicher, eine Taste zu drücken, um die eigentliche Suche durchzuführen (Aufruf per HTTP), als den Inhalt der Liste ohne Benutzeraktionen zu ändern. Klarheit und Kontrolle über die geringste Anzahl von Abgriffen.

Hier ist einige Inspiration. Ich nenne dieses Muster Filtern als Tippen, Suchen nach Button, Awesome .

Wir haben eine App mit einem Suchfeld und einer Ergebnisliste erstellt, die von allen Benutzern gut angenommen wird. Ich male drei Bildschirmabbilder in ASCII für Sie hier:

App starts                 User types '2'               User presses (search) btn

[search box empty  ]       [2         (x)] (search)     [2          (x)] (cancel)
- "Recent" header -        - "Recent" header -          - "Search result" header -
Recent post 1              Recent post *2*              *Searching* spinner
Recent post 2
Recent post 3

Betrachten Sie unseren Header "Zuletzt verwendet" als Ihren Header in der Nähe.

Wenn Ihr Benutzer die Liste durch Filtern leer macht, kann er leichter verstehen, dass er die Schaltfläche Suchen drücken muss, wenn Sie dies in diesem Szenario wirklich deutlich machen. Wir haben dazu eine große Schaltfläche "Suche auf Server fortsetzen" platziert, wenn die Liste leer gefiltert wird. Dummkopf und vertraut von der Suche nach E-Mails in der Mail-App des iPhone.

(Ich versuche gerade herauszufinden wie man Vorschläge mit Filtern im Suchfeld kombiniert )

Wenn Sie weiterhin möchten, dass die Suche automatisch gestartet wird, kann dies ein guter Anfang sein, sobald die Liste leer ist, anstatt die Schaltfläche "Suche auf Server fortsetzen" anzuzeigen. Um es weiter zu bringen, gibt es viele Beispiele für Apps, die wirklich gute Arbeit bei der Anzeige relevanter Suchergebnisse leisten, während der Benutzer tippt. Aber wenn ich das mit Ihrer Liste in der Nähe kombiniere, möchte ich nicht an diesem Ende beginnen. Ich versende lieber. :) :)

Hoffe das hilft!

2
JOG