2010-08-04 4 views
4

je veux afficher un numéro sur l'image comme un badge de la taille 30 * 28, qui est placé sur le bouton d'image,comment définir une image d'arrière-plan pour l'étiquette

i ont une image badge pour mettre en place sur le dessus de image du bouton .. sur l'image de l'insigne je devrais pouvoir afficher le texte ou le nombre et ma taille de badge est 30 * 28 ...

ainsi, pour ceci accomplir je veux placer une étiquette sur mon bouton image et donc je veux définir l'arrière-plan de l'étiquette à une image appelée badge image

Répondre

10

Vous ne pouvez pas ajouter une image d'arrière-plan à un UILabel, mais vous pouvez ajouter un UIImageView comme sous-vue à un UILabel. Assurez-vous que UILabel a backgroundColor = [UIColor clearColor]; pour la transparence.

E.g.

UIImageView *labelBackground = [[UIImageView alloc] 
    initWithImage:[UIImage imageNamed:@"mybg.png"]]; 
[myLabel addSubview:labelBackground]; 
[labelBackground release]; 
myLabel.backgroundColor = [UIColor clearColor]; 

Devrait fonctionner. Non testé

+0

mais le texte de l'étiquette n'est pas visible. Seule l'image apparaît. – prajul

+1

Mauvaise réponse, les images de fond sont ajoutées aux uilabels! il n'est pas encouragé d'ajouter un UIImage en tant que sous-vue pour donner un effet de "fond". –

+0

N'hésitez pas à utiliser le libellé "réponse obsolète" car la réponse était correcte il y a 2 ans quand elle a été postée. ;) Cela dit, si les gens veulent une compatibilité descendante avec les anciens iOS, ils pourraient toujours trouver cette réponse utile. – Kalle

10

trouvé cela dans un débordement de pile lui-même comme le code ci-dessus donne juste l'arrière-plan sans l'étiquette

était utile pour moi partager si

theLabel.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"blah"]]; 

Voir: Adding Background image to UILabel

1

Pour faire la l'image correspond à votreUIview, essayez ce code

UIImage *backgroundImage = [UIImage imageNamed:@"imageNameHere"]; 

UIGraphicsBeginImageContext(self.labelName.frame.size); 
[backgroundImage drawInRect:CGRectMake(0, 0, self.labelName.frame.size.width, self.labelName.frame.size.height)]; 
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

self.labelName.backgroundColor = [UIColor colorWithPatternImage:newImage]; 
Questions connexes