繁体   English   中英

IOS7中的UIButton背景图片

[英]UIButton background Image in IOS7

我正在为UIButton设置我的背景图像,它在iOS6上可以正常工作,但在iOS7中突出显示状态不能正常工作。

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

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

可能是什么问题呢?

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

然后如下更新您的代码,

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

不用担心@2x图片。 如果设备显示的是Retina,它将自动在文件名后附加@2x

确保UIButton的类型是Custom,而不是System。

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

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

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

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

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

您确定在.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张图片,效果很好。

另外,请确保已导入图像。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM