Aligner à droite l'icône de la loupe dans UISearchBar
Cacao-Touch, nous trouvons un contrôle UISearchBar
. J'ai besoin de le personnaliser, de sorte que l'icône de recherche (qui nous cliquez effectue l'action) présents dans la zone de texte est aligné à droite. Normalement, nous les trouver aligné à gauche. Est-il possible de le faire? Je l'ai fait R & D, mais ne pouvais pas le trouver ...
Comment puis-je le faire? Existe-il des bons tutoriels où nous pouvons le trouver?
OriginalL'auteur Honey | 2013-04-06
Vous devez vous connecter pour publier un commentaire.
Malheureusement, le
UISearchBar
n'a pas été conçu pour soutenir directement cette. Dans l'accomplissement de ce que nous voulons, il est probable que nous allons avoir à utiliser les solutions de compromis visuellement ou la fonctionnalité sage ou écrire beaucoup de personnalisation de code.J'ai décrit un couple d'approches que se rapprocher de ce que nous voulons, et peut-être de les utiliser.
Accéder À Des Sous-Vues Approche
Le texte à l'intérieur d'un
UISearchBar
est unUITextField
qui est une sous-vue deUISearchBar
et est accessible par le signifie généralement c'est à direview.subviews
.La loupe de l'icône de recherche est un
UIImageView
dans leleftView
propriété de laUITextField
. Nous pouvons basculer vers la droite en utilisant le code suivant:Qui nous donne le résultat suivant:
Comme vous pouvez le voir l'icône de dépassements de la bordure du rectangle arrondi et l'icône effacer a disparu. En outre, la
rightView
propriété a été prévu pour d'autres contenus tels que les résultats de la recherche bouton et bouton signets. Mettre l'icône de recherche ici peuvent entrer en conflit avec cette fonctionnalité, d'une certaine façon, même si vous avez été en mesure d'utiliser un rembourrage de crédits à la position appropriée.Dans le moins, vous pouvez utiliser cette approche pour extraire l'icône comme un
UIImageView
et la position explicitement où bon vous semble tant que vous le feriez pour tout autre point de vue, et d'écrire du code personnalisé pour la poignée du robinet d'événements, etc.Personnalisation De L'Apparence De L'Approche
Dans iOS v5.0 et plus tard, vous pouvez personnaliser l'apparence des barres de recherche en utilisant l'une des méthodes indiquées ici. Le code suivant permet d'utiliser des décalages de la position de l'icône et du texte dans le
UISearchBar
:Sur un standard
UISearchBar
d'une largeur de 320 pixels, il ressemble à la suivante:Cela permettrait de garder toutes les fonctionnalités associées avec l'icône de travail que prévu, mais malheureusement la
UITextField
est confus et malgré sa largeur, il affiche seulement une très petite partie de son texte. Si vous pouviez trouver un moyen pour permettre le texte à afficher au-delà de ce qu'il croit être la fin de laUITextField
, ce sera probablement votre meilleur pari.Je ne suis pas en mesure de définir rightView de la barre de recherche dans ios 7, u ne savez comment le configurer dans ios 7?
Très utile, Merci!
Parcourant les sous-vues de UISearchBar chercher UITextField n'est pas de travail depuis iOS 8, comme il est allé niveau plus profond. Mais ce UITextField *textField = [self valueForKey:@"_searchField"]; fonctionne très bien. Mais de toute façon je n'ai pas réussi avec la deuxième partie de l'astuce (dans l'Accès à la sous-vues Approche) sur iOS8,9.
"Personnalisation de l'Apparence de l'Approche" une partie est encore valable jusqu'iOS 10, iOS 11.
OriginalL'auteur Elliott James Perry
Mon exigence était que l'icône de recherche doit être sur la droite, et qu'il devrait se cacher à chaque fois que l'icône X a montré jusqu'à.
Je suis venu avec une solution similaire, mais un peu différente, et aussi l'utilisation de Swift 2 et de mise en page automatique. L'idée de base est de cacher la vue de gauche, créer une nouvelle vue à la loupe de l'image et utiliser la mise en forme automatique de la broche à droite. Ensuite, utilisez UISearchBarDelegate méthodes pour masquer l'icône de recherche à chaque fois que la barre de recherche de texte n'est pas vide.
OriginalL'auteur gregkerzhner