BeachRunnerFred
BeachRunnerFred

Reputation: 18578

If I create a PNG image in photoshop with 85% opacity, how can I maintain that same level of opacity when I add it to my iOS app?

If I create a PNG image in Photoshop and lower the opacity so it's 85% opaque, how can I maintain that same level of transparency when I add it to my iOS app?

I'm trying to set the background image of a UILabel to be this image, but the background image for the UILabel is fully opaque in my iOS app. Here's my code...

[lbl setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"labelBackground.png"]]];

Am I missing something or is this not possible?

Thanks so much for your wisdom!

Upvotes: 0

Views: 1673

Answers (4)

arturovm
arturovm

Reputation: 1235

I ran into some background issues just like you, but I learned that most UIView subclasses have a backgroundView property which is accessed like this:

[aView backgroundView];

or

aView.backgroundView = someView;

UIImageViews keep the opacity of images. With these two things in mind you can just do:

UIImageView *imageView = [UIImageView initWithImage:[UIImage imageNamed:@"YourImage.png"]];

myLabel.backgroundColor = [UIColor clearColor];

myLabel.backgroundView = imageView;

I hope you find this useful.

Upvotes: 0

Daniel Dickison
Daniel Dickison

Reputation: 21882

Have you tried lbl.opaque = NO;?

Upvotes: 1

Sid
Sid

Reputation: 9536

From my experience, iOS preserves opacity for PNG images.

I think I have an idea of what MAY be wrong (and pardon me for making any wrong assumptions)...

In photoshop, when saving a PNG image, there's an option to "Save Transparency" or something like that. Make sure that is checked before you save the PNG.

If this is not the problem, you can always use:

UIImageView.opacity = 85.0f/100.0f;

Let me know if this solves your problem :)

Upvotes: 0

samvermette
samvermette

Reputation: 40437

If I were you, I'd put an UIImageView containing the image behind your UILabel. Then make sure your UILabel and UIImageView backgroundColors are both set to [UIColor clearColor]. That's how I do it anyway.

Upvotes: 2

Related Questions