所以我正在尝试在我的iOS应用中实现自定义按钮来替换默认的圆角矩形按钮。下面是代码片段:
UIImage *normalImage = [[UIImage imageNamed:@"Images/whitebutton.png"] stretchableImageWithLeftCapWidth:12.0 topCapHeight:0.0];
UIImage *pressedImage = [[UIImage imageNamed:@"Images/bluebutton.png"] stretchableImageWithLeftCapWidth:12.0 topCapHeight:0.0];
[self.theButton setBackgroundImage:normalImage forState:UIControlStateNormal];
[self.theButton setBackgroundImage:pressedImage forState:UIControlStateHighlighted];
当我在模拟器中运行它一切正常时,我的自定义按钮显示出来。但是,当我在我的实际设备上运行时,按钮只显示为默认按钮而根本没有自定义。任何人都知道我哪里出错了?
答案 0 :(得分:1)
iOS文件系统区分大小写,与sinulator不同。我首先检查“Images”目录。
(如果我正在咆哮错误的树,请快速测试:+imageNamed:
调用是否返回nil?)
答案 1 :(得分:0)
您应该将whitebutton.png和bluebutton.png添加到您的项目中。并致电imageNamed:@"filename"
而不是imageNamed:@"file path"
。此外,在模拟器上运行时,区分大小写也没有问题。在设备上,您必须键入正确的文件名,因为它区分大小写。
希望这有帮助。
干杯,
乔治
答案 2 :(得分:0)
您的资源将在您的应用包中变得扁平化。此外,iOS上的文件系统区分大小写,而Mac OS X上的文件系统保留大小写,因此请确保图像的实际文件名是大小写正确的。如果是,只需删除Images/
前缀即可:
[UIImage imageNamed:@"bluebutton"];
此外,如果图片是png类型,则无需使用imageNamed:
指定文件扩展名。
答案 3 :(得分:0)
使用
[UIImage imageNamed:@"whitebutton.png"]
和
[UIImage imageNamed:@"bluebutton.png"]
无论你如何在Xcode中进行视觉组织,它都会在捆绑中变得扁平化