点击带齿轮符号的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
相关产品推荐
相关产品推荐

