0

所以我试图在我的 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

4 回答 4

1

iOS 文件系统区分大小写,与 sinulator 不同。我首先检查“图像”目录。

(快速测试我是否找错了树:+imageNamed:调用是否返回 nil?)

于 2012-07-08T18:27:53.960 回答
0

您应该将 whitebutton.png 和 bluebutton.png 添加到您的项目中。并调用imageNamed:@"filename"imageNamed:@"file path"。此外,在模拟器上运行时,区分大小写没有问题。在设备上,您必须键入文件的正确名称,因为它区分大小写。

希望这可以帮助。

干杯,

乔治

于 2012-07-08T18:25:55.657 回答
0

您的资源将在您的应用程序包中扁平化。此外,iOS 上的文件系统区分大小写,而 Mac OS X 上的文件系统保留大小写,因此请确保图像的实际文件名大小写正确。如果是,只需删除Images/前缀,它应该可以工作:

[UIImage imageNamed:@"bluebutton"];

此外,如果图像是 png 类型,则无需指定文件扩展名imageNamed:.

于 2012-07-08T18:27:15.317 回答
0

采用

[UIImage imageNamed:@"whitebutton.png"]

[UIImage imageNamed:@"bluebutton.png"]

无论您如何在 Xcode 中直观地组织它,它都会在包中被扁平化

于 2012-07-08T18:27:36.360 回答