2009-12-04 11 views
10

J'implémente une recherche par mot-clé basée sur la localisation. Si quelqu'un a vu la barre de recherche de Yelp, c'est ce que j'essaie de faire. Fondamentalement, une fois que la barre de recherche est cliqué, je veux fournir une entrée de champ de texte pour le mot-clé et l'autre pour l'emplacement. Quel élément de l'interface utilisateur devrais-je sous-classer? Comment pourrais-je m'y prendre?iPhone - barre de recherche de champ de texte multiple

+1

Avez-vous déjà trouvé une réponse à votre question? J'essaie de mettre en œuvre exactement la même chose, mais je n'ai pas eu de chance de le découvrir. –

+2

Y a-t-il quelque chose qui vous empêche de simplement utiliser deux objets UITextField? – David

+0

@ Borg359 J'ai ajouté ma réponse. –

Répondre

2

J'ai aussi fait une application similaire, il y a un bon moment.
Ce que je l'ai fait dans mon application était que je suivais ces étapes, (je ne donne une brève description et non la partie de code):

regard initial:

  • J'ai utilisé barre de recherche inséré dans un barre de navigation. (Je l'ai fait par programme dans le viewDidLoad de ma classe).
  • Dans mon fichier xib de cette classe, j'ai placé une vue en haut et dans celui-ci placé deux UITextFields un en dessous de l'autre. J'ai rendu cette vue cachée et déplacé ses coordonnées y par la hauteur de la vue afin qu'elles soient devenues -(viewHeight).

Fonctionnalité Partie

  • Dès que l'utilisateur touche la barre de recherche placée dans la barre de navigation, je l'ai fait caché, unhidden la vue avec les champs de texte en se déplaçant vers les coordonnées y jusqu'à ce que ils sont devenus 0 encore. Dans les méthodes de délégué de la barre de recherche, - (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar j'ai renvoyé NO, a fait la partie d'animation (mentionnée dans l'étape précédente) avant de renvoyer NO de cette méthode.

  • J'ai fait mon premier champ de texte le premier répondeur afin que le clavier apparaisse automatiquement.

  • Maintenant, quand j'ai fini de remplir les données dans les deux champs de texte, j'ai inversé les animations et mis les données remplies dans les champs de texte à la barre de recherche.

Espérons que cela aide.

4

L'implémentation de Yelp semble être une vue personnalisée avec deux objets UITextField, avec une translation et une animation d'échelle pour la faire apparaître agrandie depuis le haut. Une vue de table est ajoutée à la hiérarchie une fois l'animation terminée. Le clavier est appelé en faisant un des premiers champs de texte. BTW - d'une manière générale, la composition d'éléments IU ensemble est préférable au sous-classement.

+0

Je pense qu'ils pourraient ajouter un nouvel élément de navigation à la barre de navigation, puisque le titre devient "Rechercher" et un bouton d'annulation apparaît. – kevboh

+0

qui semble être un nouveau UINavigationBar, il est passé au-dessus de l'ancien. –

+0

qu'en est-il de ma réponse? –

Questions connexes