Faites défiler UITableView, de sorte que l'en-tête n'est pas visible
J'ai une UITableView avec un UISearchBar comme le tableViews.tableHeaderView. Tout comme le nouveau Courrier.app, Notes.app, etc. dans la version 3.0. Je veux cacher la barre de recherche jusqu'à ce que l'utilisateur fait glisser dans ses yeux.
Ma tentative ne fonctionne que quand il ya un couple d'éléments dans la tableView, de sorte que la tableView, en fait, veut les faire défiler. J'appelle cela dans loadView:
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self._tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:NO];
Néanmoins, il semble qu'Apple gère un serachbar différemment. Après la faisant glisser la barre de recherche, il ne semble pas être limité à la tablecells plus (dans les Notes.app, pas de Mail.app).
Mais peut-être qu'Apple dispose d'une méthode pour que les nouveaux 3.0 comportement, et je ne peux pas le trouver?
- La caisse couple de nouvelles propriétés pour
UIViewController
. https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/TransitionGuide/AppearanceCustomization.html#//apple_ref/doc/uid/TP40013174-CH15-SW1
Vous devez vous connecter pour publier un commentaire.
Peut-être que vous pouvez essayer de cette façon...
A fonctionné pour moi aussi. J'ai utilisé les éléments suivants:
à la requête de la hauteur de la barre de recherche.
Ce qu'on obtient exactement le même comportement que l'iPod.app:
Cela fonctionne pour moi.
J'avais d'abord faire défiler de haut, puis
setContentOffset
à0
, Puis la barre de recherche sera visible :J'aime bien le faire de cette façon:
De cette façon, vous n'avez pas vraiment besoin de s'inquiéter à propos de la hauteur de l'en-tête est. Il fonctionne, tout simplement!