如何绘制具有alpha值但前景正常的背景的自定义按钮

时间:2011-01-17 00:16:32

标签: iphone uiimage

我正在尝试创建一个半透明背景和不透明前景的自定义按钮。我使用以下代码为自定义按钮创建背景图像:

UIImage *buttonBg = [UIImage imageNamed:@"ButtonBG_35"];
buttonBg = [buttonBg stretchableImageWithLeftCapWidth:14.0 topCapHeight:0];

CGSize size = self.button1.bounds.size;

UIGraphicsBeginImageContext( size );

[buttonBg drawInRect:CGRectMake( 0, 0, size.width, size.height ) blendMode:kCGBlendModeNormal alpha:0.33];
UIImage *button1BgImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

[self.button1 setBackgroundImage:button1BgImage forState:UIControlStateNormal];

这在按钮中放置文本时可以正常工作。但是,如果我将图像放在按钮前景中,那么该图像也是半透明的。如何阻止前景图像透明。

我尝试使用alpha:1.0将图像绘制到按钮中,但是没有做任何事情。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

不是您问题的直接解决方案,而是解决方法:将按钮保持为“空”,并将图像作为子视图添加到其中 - 同时将按钮的alpha保持为1.0(或任何您想要的)。< / p>