UIButton背景图像在IOS7中

时间:2014-01-21 18:17:27

标签: ios iphone ios6 ios7 uibutton

我正在设置UIButton的背景图片,它适用于iOS 6,但iOS7中突出显示的状态无效。

[clearButton setBackgroundImage:[UIImage imageNamed:@"back-over@2x.png"] forState:UIControlStateHighlighted];

[clearButton setBackgroundImage:[UIImage imageNamed:@"btn@2x~ipad.png"] forState:UIControlStateNormal];

可能是什么问题?

5 个答案:

答案 0 :(得分:4)

从图片名称中删除@2x,并在资源文件夹中保留两份图片副本,例如back-over.pngback-over@2x.png,用于视网膜和非视网膜设备。

然后按如下所示更新您的代码,

[clearButton setBackgroundImage:[UIImage imageNamed:@"back-over.png"] forState:UIControlStateHighlighted];

不要担心@2x张图片。如果设备显示为Retina,它会自动使用@2x附加文件名。

答案 1 :(得分:2)

确保UIButton的类型是自定义,而不是系统。

答案 2 :(得分:1)

Rana Anees:请重新启动你的模拟器; - )

答案 3 :(得分:0)

如果图像的名称是.png格式,则只需提及该图像的名称。

例如,如果您有2张非视网膜和视网膜显示图像:img.pngimg@2x.png 您只需要以下内容来设置图像:

[yourButton setBackgroundImage:[UIImage imageNamed:@"img"] forState:UIControlStateNormal];

操作系统会根据屏幕的scale自动搜索图像及其@ 2x版本(Retina设备的刻度为2,非视网膜的刻度为1)。

答案 4 :(得分:0)

您确定在.h?

中声明了clearButton

打开助理编辑器,将按钮拖动到.h文件并将其命名为clearButton。

现在只需在.m clearButton中替换_clearButton就像这样:

[_clearButton setBackgroundImage:[UIImage imageNamed:@"back-over@2x.png"]    forState:UIControlStateHighlighted];

[_clearButton setBackgroundImage:[UIImage imageNamed:@"btn@2x~ipad.png"] forState:UIControlStateNormal];

我只用2张图片尝试过,效果很好。

还要确保导入图像。