2010-01-29 2 views
1

J'ai placé un UISearchBar dans mon UITableView.tableHeaderView. Cependant, il couvre le searchBar en plaçant le haut visible dans l'en-tête de la première section. Je ne peux voir le searchBar que lorsque je fais glisser le tableau vers le bas. Il est à moitié recouvert et ne peut pas être sélectionné, car si vous relâchez le défilement tableView, il sera retiré de la vue. S'il vous plaît aider.UISearchBar est couvert dans un tableViewHeader

Ce qui suit est placé dans ma méthode UITableViewController viewDidLoad:

UISearchBar *theSearchBar = [[UISearchBar alloc] init]; 
theSearchBar.delegate = self; 
self.searchBar = theSearchBar; 
[theSearchBar release]; 

self.tableView.tableHeaderView = self.searchBar; 

Le résultat est les captures d'écran suivantes: http://imagebin.ca/view/6qNiwHR.html

Répondre

0

Je pense que le tableHeaderView n'est pas le meilleur endroit pour mettre votre barre de recherche. J'utilise habituellement un UISearchDisplayController:

searchController = [[UISearchDisplayController alloc] 
        initWithSearchBar:theSearchBar contentsController:self]; 
searchController.delegate = self; 
searchController.searchResultsDataSource = self; 
searchController.searchResultsDelegate = self; 

Il est assez straight-forward et donner quelques fonctions pour la recherche (vous devez les mettre en œuvre dans le délégué/source de données, dans ce cas, votre contrôleur).

je le fais habituellement à partir d'une plume, mais je pense que vous avez juste à l'attribuer à votre viewcontroller:

self.searchDisplayController=searchController; 

Et si elle ne montre pas la vue, vous devez ajouter la vue sur la tableView directement .

Vous pouvez consulter la référence ou demander si vous avez des problèmes.

+0

Merci beaucoup. Je n'ai même pas réalisé qu'il y avait un contrôleur. Je vais essayer ça maintenant. – Sukima

+1

Au moins depuis la version 3.0, 'searchDisplayController' est une propriété en lecture seule qui ne peut pas être définie de cette façon. –

5

Il s'est avéré que c'était un problème de dimensionnement. J'ai trouvé a tutorial qui place le code suivant dans la mise en place:

[theSearchBar sizeToFit]; 

où tout faire un look parfait.

Depuis UISearchDisplayController utilise un UISearchBar déjà établi il n'élimine pas le problème.

Questions connexes