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

如何在Storyboard中同时实现Button字号修改与圆角生效?

解决Storyboard中Button同时设置字号与圆角的问题

问题原因

系统自带的「gray」样式按钮,其字体由系统动态配置管控,Storyboard中直接设置的字号会被系统样式覆盖,导致真机上不生效;而「default」样式按钮没有强制的系统字体约束,字号设置可正常生效,但默认不带圆角。

Storyboard内实现方案

方案一:使用default样式+运行时属性设置圆角

  1. 在Storyboard选中目标按钮,切换到属性检查器(Attributes Inspector),将样式设为default,直接设置需要的字号(此时真机可正常生效)。
  2. 切换到身份检查器(Identity Inspector),找到「User Defined Runtime Attributes」模块:
    • 点击「+」添加属性:Key Path填layer.cornerRadius,Type选Number,输入目标圆角值(如8)。
    • 再添加一个属性:Key Path填layer.masksToBounds,Type选Boolean,勾选YES(确保按钮内容被圆角裁剪,否则圆角可能不显示)。

方案二:自定义Button类(兼容Storyboard配置)

如果需要复用带圆角的按钮,可自定义子类:

  1. 新建一个UIButton子类,代码示例:
    import UIKit
    
    class RoundedButton: UIButton {
        override func awakeFromNib() {
            super.awakeFromNib()
            // 设置圆角,可根据需求调整数值
            layer.cornerRadius = 8
            layer.masksToBounds = true
        }
    }
    
  2. 在Storyboard选中按钮,切换到身份检查器,将「Custom Class」设为RoundedButton,样式选default并设置字号,真机即可同时生效字号与圆角。

补充说明

若坚持使用「gray」样式,需通过代码修改按钮的configuration来设置字体,但无法完全在Storyboard内完成配置,不如上述方案直接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 18:04:54