You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS 15中UIButton的图片显示行为是否发生了变更?

这确实是iOS 15的系统变更导致的。

iOS 15推出了UIButton.Configuration样式体系,所有新建的UIButton默认会使用基于配置的新式布局逻辑,覆盖了旧版API的默认行为,你遇到的两个不符合预期的表现都来自这个变更:

  • 默认不会自动将按钮图片识别为template模式渲染,只会遵循图片本身的渲染属性展示原图
  • 旧版setImage(_:for:)的图片缩放适配逻辑失效,相关参数被整合到configuration配置项中

方案1:回退到iOS 14及之前的旧版按钮行为

如果不需要用到iOS 15新增的按钮样式能力,只需要加一行代码即可完全恢复旧逻辑,原有其余代码不用修改:

button.configuration = nil

如果是在Interface Builder中创建的按钮,直接在属性检查器中将按钮的Style从默认的Plain改为Default即可生效。


方案2:适配新的Configuration体系

如果要使用iOS 15的新按钮能力,按照新API规范调整代码即可:

var config = button.configuration
// 指定图片渲染模式为模板,才能继承tint color着色
let jack = UIImage(named:"jack.png")?.withRenderingMode(.alwaysTemplate)
config?.image = jack
// 根据需要调整图片内边距、内容边距,控制图片缩放适配
config?.imagePadding = 0
config?.contentInsets = .zero
// 将配置赋值回按钮
button.configuration = config
// 此时设置tint color即可生效
button.tintColor = .systemBlue

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 01:09:03