Comment atteindre UIButton / UILabel 'padding' en application iPhone
J'ai des points de vue divers dans mon application iPhone qui nécessitent rembourrage e.g personnalisé UIButton avec le texte aligné à gauche, et un UILabel avec une couleur d'arrière-plan.
Cela peut être une question stupide, mais comment puis-je postuler "padding" pour déplacer le texte en dehors de la main gauche bord?
J'ai fatigué à l'aide de limites ... sans aucun succès.
Je sais que je pourrais créer un wrapper vue pour mon UILabel
avec une couleur d'arrière-plan, mais il semble exagéré.
Merci beaucoup.
- Marco Arment tweeté un mort-simple
UILabel
sous-classe qui ajouteUIEdgeInsets
de style rembourrage de l'étiquette de dessin: c'est sur les gist.github comme IPInsetLabel.
Vous devez vous connecter pour publier un commentaire.
Je suis en utilisant mise en page automatique. La Solution qui a fonctionné pour moi a été mise en
UIButton
'scontentEdgeInsets
.ObjC
Swift
Ok la solution la plus simple que j'ai trouvé pour l'instant est:
Pas exactement ce que je voulais, mais il fonctionne.
De padding dans uibutton texte, vous devez utiliser UIButton de
contentEdgeInsets
de la propriété.Dans le Storyboard,pour définir le contenu de l'encart de faire les étapes suivantes:-
exigence.(voir capture d'écran)
Pour ajouter rembourrage pour UILabel l'approche la plus souple consiste à sous-classe UILabel et ajouter un edgeInsets de la propriété. Ensuite, vous définissez les encarts et l'étiquette sera établi en conséquence.
OSLabel.h
OSLabel.m
CGRectInset est votre ami. Vous pouvez définir négatif "encarts" pour créer de rembourrage:
Voici un sublass de UILabel qui a personnalisable rembourrage à l'aide d'un edgeInset propriété:
PaddedLabel.h
PaddedLabel.m
(Ce qui est une simplification de Brody réponse qui travaille également avec mise en page automatique.)
Sur Xcode 9, les encarts sont maintenant situés dans le la Taille de l'Inspecteur au lieu de les Attributs de l'Inspecteur:
Je suis en train de réaliser quelque chose de similaire, c'est - 'pad' un
UILabel
. J'ai essayé de mettre en œuvre la solution que Toby posté ci-dessus, mais n'arrive pas à trouver d'où cela doit aller.Le UILabel, je travaille avec est aligné à gauche, c'est que ce qui est à l'origine du problème?
J'ai essayé d'utiliser cette
viewDidLoad
, et même dans une sous-classe de UILabel dans la méthode:Que sur la création d'une classe personnalisée qui s'étend UIButton et de la substitution de cette:
Dans le cas de UILabel de substituer:
Si vous êtes simplement à la recherche pour un remplissage horizontal sur une seule ligne, alors c'est peut-être suffisant (pour moi):