You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Swift 4中如何为导航栏按钮设置背景图?类型转换报错求助

解决Swift 4中导航栏按钮设置背景图的类型转换错误

嘿,我来帮你搞定这个报错!你遇到的问题是因为代码里创建UIImage的方式完全不对,导致Swift无法识别你要传入的图片实例。

错误原因分析

你写的UIImage?: welcome.png是完全错误的语法:

  • UIImage?可选UIImage类型的名称,而方法需要的是这个类型的实例对象
  • 你不能直接用?:这种写法来引用图片文件,必须通过UIImage的构造方法来创建实例

修正后的代码

正确的写法应该是使用UIImage(named:)方法来加载图片,这个方法会返回一个UIImage?(找不到图片时返回nil),刚好符合方法的参数要求:

btn.setBackgroundImage(UIImage(named: "welcome.png"), for: .normal, barMetrics: .default)

额外注意事项

  • 如果你的图片是放在Assets.xcassets资源目录里,可以省略文件扩展名,直接写文件名:UIImage(named: "welcome")
  • 确保图片文件已经添加到你的Xcode项目中,并且勾选了对应的Target Membership(否则App运行时找不到图片)
  • 文件名的拼写和大小写要完全匹配,iOS系统是区分文件名大小写的

内容的提问来源于stack exchange,提问作者Zouhair Sassi

火山引擎 最新活动