Je donne la frontière à Uilabel avec mais il n'y a pas d'espace entre le texte et la frontière.
Alors, comment puis-je définir des effets insettisés comme uibutton dans mon étiquette? p> p>
4 Réponses :
Placez l'étiquette dans une vue de conteneur et appliquez la bordure au conteneur. P>
Pouvez-vous me donner du code pour utiliser l'étiquette dans ContainView ?? Je suis nouveau à ça ..
Faites un UIView, appliquez la bordure à cette vue et ajoutez l'Uilabel à la vue sous forme de sous-vision.
Alternativement, sans utiliser d'étiquette, vous pouvez utiliser nstring code> méthode
Taillewithfont: Forwidth: LinebreakMode: code>, qui renvoie la taille du texte. Ensuite, vous pouvez appeler
nsstring code>
drawinrect: withfont: linebreakMode: code> méthode, où votre rect serait celui obtenu à partir de la méthode
Taillewithfont code>, augmenté par la marge souhaitée. P>
Cela fonctionne aussi, mais vous perdez l'autre personnalisation et les options de commodité d'Uilabel, telles que la possibilité d'appeler Settext et Redraw, ce qui ne serait pas possible en utilisant la méthode de Maggie sans écrire une vue personnalisée.
Vous pouvez sous-classer Uilabel et remplacer quelques méthodes:
Le premier vous donne des coins arrondis et une frontière. Vous pouvez modifier la largeur de la frontière, la couleur, etc. au besoin. P>
- (void) drawTextInRect:(CGRect)rect { UIEdgeInsets insets = {0,5,0,5}; [super drawTextInRect:UIEdgeInsetsInsetRect(rect, insets)]; }
Vous pouvez également ajouter un espace dans le texte pour une solution très simple:
Code Objc (ajouté par S1M0N comme commentaire) P>
Label.text = " "+lbltext;
Je n'ai pas baissé vous voter - cependant que vous avez probablement été voté car ce n'est pas valide objectif-c. Il n'y a pas d'opérateur de concaténate de chaîne comme si vous avez en Java et quelles que soient les autres langues qui utilisent un '+' pour concaténer le texte à un littéral à chaîne. De plus, les littéraux de chaîne Objective-C commencent par un signe @, il aurait donc été @ "". En plus de cela, même si cela a fonctionné - la solution n'est pas la plus pratique à tous les cas (tels que le texte multilingle), mais cela fonctionnerait pour le plus simple des cas.
J'utilise monoTouch (C #) pour iOS Development, mais vous avez raison que j'aurais dû mentionner que dans mon poste, car il est confus dans un poste d'objectif-C.
L'équivalent de cet objectif CORE-C est [Label Settext: [Nstring StringwithFormat: @ "% @", texte]]; code>
C'est une solution aussi simple. Kudos monsieur!