L'ajout d'une barre de recherche en haut d'une UITableView
J'ai un UITableView et je suis actuellement en train de travailler sur ajouter une barre de recherche en haut composé d'une UIView avec un UITextField à l'intérieur. Comme c'est la norme pour les applications iOS, la barre de recherche ne doit être visible lors de l'affichage de la table est défile vers le haut défilement vers le bas, il devrait disparaître de l'écran, ainsi que les autres cellules.
Cependant, je ne peux pas trouver un moyen de parvenir à cet effet. Si je place la barre de recherche en haut de la table, il va superposition de la cellule en-dessous d'elle. Si je le place 50 pixels au-dessus de la vue de la table, il n'est pas possible pour l'utilisateur de sélectionner puisqu'il disparaît automatiquement lorsque l'utilisateur relâche le doigt de l'écran.
Quelqu'un peut-il svp m'éclairer sur comment pour obtenir cet effet?
OriginalL'auteur wstr | 2014-04-04
Vous devez vous connecter pour publier un commentaire.
Habituellement, vous utilisez simplement
UISearchBar
comme untableViewHeader
pour votre table. Si vous voulez qu'il soit caché lorsque l'utilisateur entre dans l'écran (comme c'est fait dans la plupart des applications natives), vous pouvez simplement mettrecontentOffset
pour latableView
dansviewWillAppear
.Et je suis sûr que c'est en fait la façon dont ils le font. Et si vous pensez que c'est ce que
tableHeaderView
est destiné.Essayer quelque chose comme cela:
Noter que dans iOS 7, vous ne devriez pas simplement régler le
contentOffset
de votretableView
àCGPointMake(0., CGRectGetHeight(self.tableView.tableHeaderView.frame))
si votreviewController
aautomaticallyAdjustsScrollViewInsets
ensemble deYES
, car il ne sera probablement pasCGPointZero
dansviewWillAppear:
OriginalL'auteur dariaa
@dariaa la réponse de mise à jour pour Swift 3:
Si vous aurez probablement besoin de régler la barre de recherche comme une propriété, si vous souhaitez l'utiliser.
OriginalL'auteur davidrynn
Si vous ne souhaitez que votre recherche soit visible lorsque le UITableView faire défiler tout le chemin vers le haut, faire un UITableViewCell sous-classe qui héberge vos UISearchBar. Puis, dans tableView:cellForRowAtIndexPath, vérifiez si le indexPath est (0,0). C'est la vue du tableau vous indiquant qu'il est la création de la cellule tout en haut, alors il suffit de créer votre barre de recherche de cellules au lieu de votre cellule par défaut.
Code devrait ressembler à quelque chose comme ceci:
Il peut y avoir une manière plus propre à déterminer la ligne et la section de la indexPath, mais je suis en train d'écrire ce code se trouve sur le dessus de ma tête et ne me souviens pas d'une meilleure façon.
OriginalL'auteur seankellycs