【发布时间】:2012-05-26 06:46:21
【问题描述】:
我遇到了一个奇怪的问题。我有一个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]; [self addSubview:nextButton];
我在其他地方使用了完全相同的图像进行绘制,透明度没有问题。
更新:添加其他透明图像同样会增加 alpha 的强度。虽然它们是透明的,但它们看起来更暗,因此透明度更低。同样,在其他地方也能完美运行。
更新 2: 更糟糕的是,我刚刚创建了一个新项目,使用从另一个项目中拖动的完全相同的图像,创建了一个按钮,并且按钮正确显示没有问题。多么令人讨厌!
【问题讨论】:
-
您是否尝试过设置图像属性而不是背景图像属性?那有什么区别吗?
-
查看下面的对话。
-
您可能只需要一个干净的构建。您一定有一张不太透明或不透明的旧图像,并将其更改为新图像,并且保留了对旧图像的引用。出于某种原因,XCode 似乎粘在已删除的文件上。
-
如果您在 XCode 项目中更改了图像或文件,清理项目总是一个好主意,它应该更新所有内容。尝试清理您的旧项目,看看会发生什么。
-
基于更新2:尝试:1)xcode - 清理项目,2)模拟器 - 重置内容和设置或删除应用程序 3)设备 - 删除现有应用程序