我遇到了一个奇怪的问题。我有一个UIButton
.UIButtonTypeCustom
对于它的背景图像,我使用的是透明图像。问题是实际图像的透明度似乎不正确。奇怪的是它实际上是透明的,因为背景正确显示在按钮后面。
下面是按钮外观(左)和按钮外观(右)的示例。我截取了一张截图并将图像覆盖在 Photoshop 中的背景上,背景在图像中正确显示,而在左侧的实际按钮中却没有。值得注意的是,左侧 UIButton 上的辉光比插入背景时的实际图像更强烈。
这是我用来证明它确实具有透明度的图像:
这是我的代码:
UIButton *nextButton = [UIButton buttonWithType:UIButtonTypeCustom];
nextButton.backgroundColor = [UIColor clearColor];
nextButton.frame = CGRectMake(0, 0, 30, 30);
[nextButton setBackgroundImage:[[UIImage imageNamed:@"ButtonBackground.png"] stretchableImageWithLeftCapWidth:5 topCapHeight:5] forState:UIControlStateNormal];
forState:UIControlStateHighlighted]; [自我 addSubview:nextButton];
我在其他地方使用了完全相同的图像进行绘制,并且透明度没有问题。
更新:添加其他透明图像同样会增加 alpha 的强度。虽然它们是透明的,但它们看起来更暗,因此透明度更低。同样,在其他地方也很完美。
更新 2:更糟糕的是,我刚刚创建了一个新项目,使用从另一个项目中拖动的完全相同的图像,创建了一个按钮,并且按钮正确显示没有问题。多么令人讨厌!