我正在设置UIButton
的背景图片,它适用于iOS 6,但iOS7中突出显示的状态无效。
[clearButton setBackgroundImage:[UIImage imageNamed:@"back-over@2x.png"] forState:UIControlStateHighlighted];
[clearButton setBackgroundImage:[UIImage imageNamed:@"btn@2x~ipad.png"] forState:UIControlStateNormal];
可能是什么问题?
答案 0 :(得分:4)
从图片名称中删除@2x
,并在资源文件夹中保留两份图片副本,例如back-over.png
和back-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.png
和img@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张图片尝试过,效果很好。
还要确保导入图像。