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

自定义按钮未出现在iOS设备上,ios,cocoa-touch,Ios,Cocoa Touch,因此,我试图在iOS应用程序中实现一个自定义按钮,以替换默认的圆角矩形按钮。下面是一段代码片段: UIImage *normalImage = [[UIImage imageNamed:@"Images/whitebutton.png"] stretchableImageWithLeftCapWidth:12.0 topCapHeight:0.0]; UIImage *pressedImage = [[UIImage imageNamed:@"Images/bluebutton.png"]

因此,我试图在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];

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

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

希望这有帮助

干杯


George

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

[UIImage imageNamed:@"bluebutton"];
此外,如果图像是png类型,则不需要使用
imageNamed:

指定文件扩展名

[UIImage imageNamed:@"whitebutton.png"]


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

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


(如果我选错了树,快速测试:
+imageNamed:
调用是否返回nil?

啊,太棒了。删除了文件路径,现在可以处理了!非常感谢如果你觉得答案有用,请将其标记为正确,以便其他人知道你的问题的解决方案。这也是一个很好的实践,这里的堆栈溢出,人们会回答你的问题更快,如果你有一个体面的接受率。很高兴你解决了。干杯完成。我是新来的,所以我要了解我的方位!再次感谢
[UIImage imageNamed:@"bluebutton.png"]