【发布时间】:2023-03-21 16:16:01
【问题描述】:
我目前正在使用 Xcode 和 Swift 开发一个简单的 iOS 应用程序。在我的应用程序中,有一个按钮有时会被禁用/启用,具体取决于用户触摸的其他内容。但是当我设置“button.enabled = false”时,我也把那个按钮变灰了,让用户知道这个按钮当前是被禁用的。这怎么可能?
【问题讨论】:
-
您的按钮在禁用时应该会改变外观。如果没有,你必须验证它是否真的被禁用了?
我目前正在使用 Xcode 和 Swift 开发一个简单的 iOS 应用程序。在我的应用程序中,有一个按钮有时会被禁用/启用,具体取决于用户触摸的其他内容。但是当我设置“button.enabled = false”时,我也把那个按钮变灰了,让用户知道这个按钮当前是被禁用的。这怎么可能?
【问题讨论】:
使用以下代码为禁用状态自定义按钮的标题。你可以在viewDidLoad里面调用它:
button.setTitleColor(UIColor.grayColor(), forState: .Disabled)
如果您想为禁用按钮自定义背景颜色,请使用此答案中的方法:How to change background color of UIButton when it's highlighted
Swift 5.3:
button.setTitleColor(.systemGray, for: .disabled)
【讨论】:
斯威夫特 3
作为已接受的答案,但已针对 Swift3 进行了更新
button.setTitleColor(UIColor.gray, for: .disabled)
【讨论】:
当您将 disabled 标志设置为 true 时,标准按钮会更改其 UI。
如果这样不行,可以使用slashdot的灰色标题换色,或者做我经常做的,就是把按钮上的alpha设置为0.6左右。 (但是,如果按钮后面的内容不统一,那么这不是一个好的选择,因为按钮后面的内容都会显示出来。)
【讨论】: