自定义按钮未出现在iOS设备上

时间:2012-07-08 18:22:33

标签: ios cocoa-touch

所以我正在尝试在我的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];

当我在模拟器中运行它一切正常时,我的自定义按钮显示出来。但是,当我在我的实际设备上运行时,按钮只显示为默认按钮而根本没有自定义。任何人都知道我哪里出错了?

4 个答案:

答案 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中进行视觉组织,它都会在捆绑中变得扁平化