Ajouter à gauche de la marge pour objet UITextField
Je veux mettre de la marge gauche d'un UITextField
texte de 10 px. Quelle est la meilleure façon de le faire?
- Pour une réponse plus détaillée de cette question, reportez-vous à cette réponse de stackoverflow.com/questions/3727068/...
Vous devez vous connecter pour publier un commentaire.
Comme je l'ai expliqué dans un commentaire précédent, la meilleure solution dans ce cas est d'étendre la
UITextField
classe au lieu d'utiliser une catégorie, de sorte que vous pouvez l'utiliser explicitement les champs de texte.Une catégorie est destinée à ajouter de nouvelles fonctions à une classe existante, de ne pas surcharger une méthode existante.
return CGRectInset([super textRectForBounds:bounds], 10.f, 0.f);
Vous pouvez le faire par l'extension de
UITextField
classe et en remplaçant deux méthodes:Voici le code:
L'interface en
MYTextField.h
Sa mise en œuvre dans
MYTextField.m
return UIEdgeInsetsInsetRect(bounds, UIEdgeInsetsMake(0, 10, 0, 0));
Essayer ce code
Pour Swift 3 :
Faire une prise de courant de la
UITextField
, dire usernameTextField. Ensuite, écrivez le code suivant dansviewDidLoad()
Changer le
width: 5
à une plus grande valeur si plus d'espace est nécessaire.J'espérais voir un réglage de l'IB dans l'inspecteur des propriétés pour ajuster cette valeur. S'avère que j'avais mis de l'alignement et de style de bordure, par inadvertance, à des valeurs que foiré avec le rembourrage sur la gauche.
Vous ne pensez pas que ce serait un gros problème pour choisir justifier à gauche et pas de frontière, mais il rend les mots, fondamentalement, se chevauchent ou sont à droite sur le bord de la boîte et il ne regarde pas à droite.
Mauvais:
Bon:
Fixe à droite pour moi. Espérons que cela aide quelqu'un d'autre aussi.
UITextBorderStyleRoundedRect
ajoute une belle marge intérieure gauche de la zone de texte, alors queUITextBorderStyleNone
en plus de votre propre (à angle droit) de la bordure met le texte à droite, contre le bord.j'ai atteint presque en substituant
- (CGRect)textRectForBounds:(CGRect)bounds
. maintenant la question est quand TextField passe en mode edit, leur marge de gauche remis à Zéro .......Pour Swift 4:
Je préfère utiliser
IBDesignable
classe etIBInspectable
propriétés pour me permettre de définir le rembourrage via Xcode story-boards et de le garder réutilisables. J'ai aussi mis à jour le code de Swift 4.Vous pouvez essayer ce