Swift iOS自定义图片UIButton设置空标题仍显示titleLabel问题
问题根因
UIButton的标题按*控制状态(UIControl.State)*独立存储,你之前直接修改titleLabel?.text的方式仅能临时修改当前展示的文本,一旦按钮状态变化(比如点击触发高亮状态、UIKit触发控件重绘),系统会自动读取对应状态下存储的标题值重新渲染,所以临时修改会失效。你遇到的默认"Button"文本,是因为Storyboard配置时仅清空了默认状态的标题,其他状态下还残留了系统默认值,或Xcode Storyboard缓存导致默认值被保留。
AR场景中的普通UIButton和普通iOS应用的按钮没有特殊差异,不需要改用代码创建按钮,按以下方案配置即可解决:
方案1:Storyboard中配置(无需修改代码)
- 选中AR场景中添加的UIButton,打开右侧属性检查器
- 找到
State Config下拉选项,依次选中Normal、Highlighted、Selected、Disabled四个常用状态,每个状态下都清空Title输入框的所有内容 - 额外建议:将按钮的
Type属性从默认的System改为Custom,避免系统默认样式干扰
方案2:代码配置
在viewDidLoad方法中对关联好的IBOutlet按钮执行以下配置即可,不需要在生命周期或点击事件中反复修改:
// 清空所有状态下的标题文本 restartButton.setTitle("", for: .normal) restartButton.setTitle("", for: .highlighted) restartButton.setTitle("", for: .selected) restartButton.setTitle("", for: .disabled) // 可选:修改为自定义按钮类型,屏蔽系统默认样式 restartButton.buttonType = .custom
内容的提问来源于stack exchange,提问作者rafi
相关产品推荐
相关产品推荐

