我更改 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 背景图像的方式有啥问题?的主要内容,如果未能解决你的问题,请参考以下文章