我更改 UIBUtton 背景图像的方式有啥问题?

Posted

技术标签:

【中文标题】我更改 UIBUtton 背景图像的方式有啥问题?【英文标题】:What is Wrong with My Way of Changing UIBUtton Background Image?我更改 UIBUtton 背景图像的方式有什么问题? 【发布时间】:2012-10-10 11:03:15 【问题描述】:

我们来看这张图:

左箭头表示在 Interface Builder 中按钮背景已更改,但在模拟器(和 iPhone)上仍为白色。

右箭头表示我已经更改了背景图片。

那么背景图片怎么没有变化呢?

另外,该界面构建器的背景参数是什么?我问的原因是,当您以编程方式设置背景图像时,您需要指定状态。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIButton_Class/UIButton/UIButton.html

提示:图片太大但可以在firefox中使用ctrl+放大:D

注意:我添加了:

  UIImage * imgFilterBar = [UIImage imageNamed:@"filter-bar.png"];
    [self.ChangeFilter setBackgroundImage:imgFilterBar forState:UIControlStateNormal|UIControlStateHighlighted];

在 viewDidLoad 中

还是不行。

我收到了这个警告: 2012-10-10 18:29:59.929 BadgerNew[29833:c07] 无法加载从带有标识符的包中的 nib 引用的“filter-bar.png”图像

这是什么意思?我在做 [UIImage imageNamed:@"filter-bar.png"];正确吗?该文件在我的项目中。

【问题讨论】:

您是否检查了文件是否在 Bundle 中?BuildPhases->Copy Bundle 资源。检查此文件是否存在 【参考方案1】:

如果您想在 Button 上使用背景图片,请使用背景图片选项上方的图片选项。

【讨论】:

我想让按钮上的文字继续被看到。【参考方案2】:

您是否尝试设置 UIButton 图像而不是 UIButton 背景图像?

[self.ChangeFilter setImage:imgFilterBarforState:UIControlStateNormal|UIControlStateHighlighted];

【讨论】:

【参考方案3】:

您可以在按钮上添加标题以查看名称。检查不同的标题颜色和大小,因此您可能看不到标题。如果这不可行,请在按钮中添加一个 uilabel

【讨论】:

【参考方案4】:

Kendall 在Could not load the image referenced from a nib in the bundle running on device 的回答给我带来了启发。

问题是我使用参考文件夹(蓝色文件夹)。如果我这样做,我需要提及文件夹名称,这是一团糟。

所以我只是将整个内容复制到资源中。问题解决了。

【讨论】:

以上是关于我更改 UIBUtton 背景图像的方式有啥问题?的主要内容,如果未能解决你的问题,请参考以下文章

UIButton 背景图像 以编程方式更改

已知如何用标签值更改 UIButton 背景图像?

UIButton 背景图像从另一个按钮更改

目标 C. 这个 UIButton 图像有啥问题?

iOS:如果背景图像与按钮颜色相同,则更改我的 UIButton 的颜色

如何在 Interface Builder 中更改 UIButton 的背景图像并保留其形状?