Je veux juste mettre uniquement en évidence le texte dans Vérifiez l'image, voici les étiquettes plus grandes que le texte (centre aligné) p>
p>
merci. p> uilabel code>, j'ai essayé en donnant code> BackgroundColor code> pour l'étiquette, mais il met en surbrillance que les espaces vides ne semblent pas aussi bien. Il y a donc un moyen de mettre en évidence le texte sans redimensionner
uilabel code>. P>
4 Réponses :
Essayez ceci
Mtlabel P>
MTLabel *label4 = [MTLabel labelWithFrame:CGRectMake(20, 270, 250, 60) andText:@"This label is highlighted, has a custom line height, and adjusts font size to fit inside the label."]; [label4 setLineHeight:22]; [label4 setFont:[UIFont fontWithName:@"Helvetica" size:30]]; [label4 setAdjustSizeToFit:YES]; [label4 setMinimumFontSize:15]; [label4 setFontHighlightColor:[[UIColor orangeColor] colorWithAlphaComponent:0.5]]; [self.view addSubview:label4];
Vous pouvez avoir un uiimageview strong>, définissez sa couleur de fond de votre choix puis placez votre Uilabel fort> dessus.
Cela résoudra sûrement votre problème.
Voici le code de contournement: UIImageView * imgView = [[UIImageView alloc]initWithFrame:CGRectMake(10, 10, 100, 40)];
[imgView setBackgroundColor:[UIColor brownColor]];
[self.view addSubview:imgView];
UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 40)];
[label setBackgroundColor:[UIColor clearColor]];
[label setTextAlignment:UITextAlignmentCenter];
label.text = @"My Label";
[imgView addSubview:label];
[label release];
[imgView release];
S'il vous plaît mentionner la raison du vote en baisse !! Donc, je peux corriger ma réponse.
Ceci ajoutera une sous-évaluation derrière le texte, avec la taille correcte: et n'oublie pas: [étiquette SetbackColor: [Uicolor ClearColor]]; Code > p> p>
Cela ne fonctionnera pas correctement si le texte enveloppe plusieurs lignes. Cette vue verte ne peut former que des rectangles simples. Si la deuxième ligne n'a qu'un mot, toute la ligne sera mise en surbrillance.
C'est vrai, mais si vous devez prendre en charge tout iOS <6 et ne pouvez pas utiliser nsmutableattributedstring code>, cela peut être la solution la plus simple.
La plupart des autres solutions ne considèrent pas le texte qui couvre plusieurs lignes tout en soulignant que la mise en surbrillance du texte, et ils sont tous assez hacky impliquant des sous-espions supplémentaires.
Une solution iOS 6 et ultérieure consiste à utiliser des chaînes attribuées: < / p>
Je n'en ai aucune idée de NsmutaLeAttributedstring encore, de toute façon sa fonction de travail. Merci.
J'ai essayé le processus ci-dessus. Cela n'a pas bien fonctionné avec moi. : | i.imgur.com/xhvl9q.png?1
Cela ne fonctionne pas comme prévu par la question: il ajoutez également de la couleur d'arrière-plan aux espaces vides créés par Word Eppostic. Vérifiez: Mettez en surbrillance uniquement sur le texte d'un Uilabel
ne fonctionnera pas bien avec des textes multilignes si vous souhaitez mettre en évidence le texte et non les espaces vides
Vous devrez utiliser un
nsattributedstring code>.
@Mikikeweller pouvez-vous donner plus de détails ...
Je pense que vous voulez que le fond soit clair. Ensemble Label.backgroundColor = [Uicolor ClearColor]; Label.HighlighteDtextColor = [Uicolor GreenLor];
Vous ajoutez une étiquette dans .xib ou programmatiquement?
@ PM444 XIB UNIQUEMENT, mais je peux contrôler par programmation.
Donc, vous voulez une couleur grise comme base d'arrière-plan de votre texte et non comme étiquette de fond de fond que je suis raison?
@ PM444 Ouais. Besoin de mettre en évidence uniquement le texte.
Ensemble Label
Sizetofit code> et définissez le cadre pour une position appropriée. Après avoir défini la couleur de fond de celui-ci.
Downvotor Demande à vous s'il vous plaît mentionner le commentaire?
J'ai répondu à la même question ici: Stackoverflow.com/a/41161425/1980246