Hauteur UISearchBar sur iOS8 lorsque showsScopeBar = YES
Je suis en utilisant UISearchBar
dans mon application, avec showsScopeBar=YES
. Lors de l'exécution sous iOS8 (à la fois dans le simulateur et sur un appareil) le champ d'application de la barre est caché et la barre de recherche de la hauteur reste à 44 place de l'88. À l'aide de la nouvelle vue débogueur dans Xcode 6, je peux voir que la barre de portée est effectivement présent, mais reste caché derrière le champ de texte.
Le seul moyen que j'ai trouvé jusqu'à présent est de définir manuellement la barre de recherche de la hauteur de 88, ce qui, évidemment est un terrible hack.
Me manque quelques documenté incompatibilité, ou est-ce un bug?
source d'informationauteur Gereon
Vous devez vous connecter pour publier un commentaire.
J'ai rencontré ce problème aussi. Après des recherches sur les Pommes developer forum, j'ai trouvé ce thread:
https://devforums.apple.com/thread/235803?start=0&tstart=0
Et apparemment la barre de recherche n'est pas automatiquement un sizeToFit quand il est censé aussi. Il est donc de la hauteur des séjours à 44 au lieu de régler à la portée des boutons.
Le bug n'est pas résolu dans iOS8 GM.
J'ai fait un simple [self.barre de recherche sizeToFit] dans mon viewWillAppear: et résolu.
Ce problème se produit dans l'iOS 8 version.
J'ai ajouté ces 2 lignes dans mon viewWillAppear: et résolu.
- (void)adjustSearchBarToShowScopeBar{
[self.searchBar sizeToFit];
self.tableView.tableHeaderView = self.searchBar;
}
Juste l'ajout de [soi.barre de recherche sizeToFit] couvrait mon tableview de première ligne.
Juste de l'actualisation de la tableview en-tête résolu le problème à la perfection.
Ce ne semble pas être un iOS 8 bug mais une Xcode 6 GM compilé Storyboard bug comme il arrive sur iOS 6/7.
Comme l'a suggéré, il est fixé par l'appel de
sizeToFit
sur la barre de recherche enviewWillAppear
.Si vous voulez le faire à partir d'une vue à la place d'un contrôleur, vous pouvez essayer de placer à l'intérieur de
willMoveToWindow
.Ce bug semble affecter Xcode 5.x s'appuie sur iOS 8 et Xcode 6 GM s'appuie sur tous les systèmes.
À l'aide de Janne réponsej'ai pensé qu'il serait utile de partager la façon de le faire automatiquement avec la méthode swizzling.