Comment faire pour aligner à gauche UISearchBar texte de l'espace réservé
J'ai besoin de faire une recherche personnalisée bar de ce genre. Le problème que j'ai est à gauche aligner le texte de l'espace réservé, ainsi que de placer l'icône de recherche dans le droit. J'ai un png de l'icône de recherche que j'ai essayé de l'utiliser dans un UIImageView
, et définir UIImageView
comme le rightView
de la UISearchBar
's UITextField
. Cette solution n'a pas fonctionné, et j'ai manqué d'idées. Quelqu'un aurait-il une solution?
Pas sûr au sujet de l'alignement du texte, mais vous pourriez envisager de faire de l'icône de recherche dans un personnalisé
J'ai répondu sur une autre question. Heureux de recevoir des commentaires sur la façon de l'améliorer: stackoverflow.com/a/25827025/3746156
UIButton
, placé sur le haut de la barre de recherche, qui fonctionne comme un bouton "Enter". J'ai rencontré quelques applications qui le font, et j'ai toujours bien aimé avoir la possibilité de ne pas avoir à taper le champ de recherche, mettre en place le clavier, et appuyez sur "Recherche" à partir de là, si je veux ré-exécuter la recherche.J'ai répondu sur une autre question. Heureux de recevoir des commentaires sur la façon de l'améliorer: stackoverflow.com/a/25827025/3746156
OriginalL'auteur Chandler De Angelis | 2013-12-04
Vous devez vous connecter pour publier un commentaire.
N'utilisez pas de
UISearchBar
si vous avez besoin de faire ces sortes de personnalisations. Vous aurez à faire votre propre en utilisant unUITextField
et unUIImageView
, et de répondre à la déléguer des appels.Mais je veux que tous les autres fonctionnalités intégrées de la barre de recherche (annuler et bouton x, par exemple) - je veux simplement pour aligner à gauche le texte de l'espace réservé - est-ce trop demander? Et pourquoi serait-ce si difficile à faire?
OriginalL'auteur paulrehkugler
SWIFT 3
swift 3 ne permet pas de remplacer l'espace réservé à la propriété. C'est la version modifiée de Drix réponse.
et appeler la fonction comme :
OriginalL'auteur Mounika Vangala
Basée à Mohittomar réponse, comme demandé par @DevC pour ajouter des espaces à la fin de la titulaire de place, voici le code swift:
Je sous-classe de l'espace réservé dans la UISearchBar, après avoir défini la valeur, je vérifie si le dernier caractère est un espace. puis obtenir la taille d'un espace et des espaces combien j'ai besoin d'ajouter à aligner à gauche.
OriginalL'auteur Adriano Spadoni
Une solution de travail pour Drix réponse
Cette méthode appearanceWhenContainedInInstancesofclasses n'est pas disponible dans iOS 8, il existe une solution de contournement pour iOS 8 ici
OriginalL'auteur fede1608
Un travail swift 3 solution pour Drix réponse:
OriginalL'auteur Lion
Si vous voulez que votre contrôle pour répondre exactement comment vous le voulez, vous devriez probablement faire de votre propre contrôle personnalisé.
Ce contrôle peut être séparé en trois parties :
UIImageView
UITextField
UIButton
pour le l'icône de recherche si vous souhaitez que l'utilisateur d'interagir avec elleLa façon la plus simple de le faire est probablement de créer une nouvelle classe
MySearchBar
, avec trois parties dans l'interface privée :Dans votre
MySearchBar
, vous pouvez créer votre composant, le personnaliser, ajouter un look & feel. Pour récupérer le résultat de la recherche, votre commande peut avoir un déléguéid<UISearchBarDelegate>
(votreUIViewController
) qui va simuler la présence d'un standard UISearchBar.Ce qui reste est de créer votre
MySearchBar
dans votre contrôleur et de définir le délégué à votre vue-contrôleur. Les messages de laUISearchBarDelegate
pouvez soit aller à votreMySearchBar
de filtrer ou de faire un pré-traitement avant de l'envoyer à votreUIViewController
, ou aller directement à votreUIViewController
.OriginalL'auteur ameunier
Pas besoin de personnalisation viens de le faire...
barre de recherche a central de l'alignement du texte pour sa place-hoder , il suffit donc de donner quelques gros texte. et si vous le texte est petit, puis utilisez simplement un espace après l'emplacement texte.
Cela fonctionne impeccable uniquement si vous cochez le nombre de places dont vous avez besoin et ajouter de manière dynamique. - substitution de l'espace réservé var, et de vérifier la taille du texte contre la taille de l'automate, de la taille d'un espace. Si quelqu'un veux que je poste le code, faites le moi savoir.
ce serait génial si vous pouviez poster ce code?
Hey @DevC, je vais répondre pour être en mesure de poster le code, maintenant.
C'est une très belle solution de contournement.
OriginalL'auteur Mohit tomar
Version pour Xamarin
OriginalL'auteur Vlkam
Il est trop tard, mais si quelqu'un se demande toujours la solution, alors vous pouvez suivre ce.
Vous pouvez obtenir le champ de recherche ci-dessus en utilisant le code. Maintenant il suffit d'utiliser les propriétés que vous souhaitez utiliser, comme.
PS. Propriétés d'alignement de texte est utilisé pour du texte et de l'espace réservé à la fois.
Merci.
OriginalL'auteur Faran