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

点击带齿轮符号的UIBarButtonItem时为何会缩小?

解决UIBarButtonItem点击时齿轮符号变小的问题

嘿,我来帮你搞定这个齿轮按钮点击变小的问题!这个情况其实很常见——你只给按钮的**普通状态(.normal)**设置了自定义的28号字体,但当按钮被点击进入高亮或选中状态时,它会自动 fallback 到系统默认的字体大小,所以看起来就突然缩小了。

修复方案

只需要把自定义字体属性同步应用到按钮的所有相关状态就行,修改后的代码如下:

let settings = UIBarButtonItem(title: "\u{2699}\u{FE0E}", style: .plain, target: self, action: #selector(show_settings))
let font = UIFont.systemFont(ofSize: 28)
let attributes = [NSAttributedString.Key.font : font]

// 给普通、高亮、选中状态都设置相同的文本属性
settings.setTitleTextAttributes(attributes, for: .normal)
settings.setTitleTextAttributes(attributes, for: .highlighted)
settings.setTitleTextAttributes(attributes, for: .selected)

更简洁的写法

要是你想让代码更清爽,还可以直接用.application状态(这个状态会覆盖按钮的所有应用内状态):

settings.setTitleTextAttributes(attributes, for: .application)

这样不管按钮是正常显示、被点击还是处于选中状态,都会保持你设置的28号字体大小,齿轮符号就不会再出现点击变小的情况啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:03:22