2010-11-08 9 views
1

Comment créer un UILabel avec une image d'arrière-plan et ajuster la transparence (canal alpha) de l'image d'arrière-plan sans modifier la transparence du texte?Comment puis-je définir une image d'arrière-plan pour un UILabel et ajuster son alpha sans changer la transparence du texte?

S'il n'y a pas moyen facile d'y arriver dans l'objet UILabel par lui-même, ce que sur la création d'un objet personnalisé UIView qui est composé d'un UIImageView et un UILabel, ce qui me permettrait de régler le canal alpha de l'image indépendamment du UILabel canal alpha? Est-ce plus compliqué que nécessaire?

Merci beaucoup pour votre sagesse!

+0

Utilisez-vous [UIColor colorWithPatternImage: [UIImage imageNamed: @ "myBackground"]] comme arrière-plan de votre étiquette? Avez-vous besoin du paramétrage de la transparence pour l'exécution ou pouvez-vous utiliser la transparence du canal alpha au format PNG? – Greg

+0

Salut Gregln, oui, j'utilise colorWithPatternImage et j'ai besoin de la transparence pour arriver à l'exécution. – BeachRunnerFred

+0

Je ne connais pas un moyen facile d'appliquer la transparence à une image utilisée avec colorWithPatternImage. Je suppose que vous pourriez redessiner l'image dans un contexte graphique en utilisant drawInRect: blendMode: alpha: de UIImage, puis récupérer le résultat dans une nouvelle UIImage utilisée avec colorWithPatternImage, mais je n'ai jamais essayé cela. – Greg

Répondre

1

Une recherche de codes Google pour UIImage, alpha et CGImageRef ne transforme pas tout ce qui fait exactement ce dont vous avez besoin, mais beaucoup de code connexe (voir par exemple this). La manière que je ferais suit le même modèle, obtenant un CGImageRef de votre image, le dessinant avec un mode de composition avec votre transparence, et récupérant un UIImage de celui utilisant [UIImage imageWithCGImage:].