【问题标题】:How to grey out a button to let the user know that it is currently disabled in iOS? [duplicate]如何使按钮变灰以让用户知道它当前在 iOS 中被禁用? [复制]
【发布时间】:2023-03-21 16:16:01
【问题描述】:

我目前正在使用 Xcode 和 Swift 开发一个简单的 iOS 应用程序。在我的应用程序中,有一个按钮有时会被禁用/启用,具体取决于用户触摸的其他内容。但是当我设置“button.enabled = false”时,我也把那个按钮变灰了,让用户知道这个按钮当前是被禁用的。这怎么可能?

【问题讨论】:

  • 您的按钮在禁用时应该会改变外观。如果没有,你必须验证它是否真的被禁用了?

标签: ios swift xcode uibutton


【解决方案1】:

使用以下代码为禁用状态自定义按钮的标题。你可以在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)

【讨论】:

【解决方案2】:

斯威夫特 3

作为已接受的答案,但已针对 Swift3 进行了更新

button.setTitleColor(UIColor.gray, for: .disabled)

【讨论】:

    【解决方案3】:

    您可以通过 Storyboard 执行此操作。 选择按钮,转到身份检查器并单击状态配置并选择“禁用”状态。 然后将按钮的背景颜色设置为灰色。 从这里您可以根据您的不同状态的要求自定义您的 UIButton,您所需要的只是在代码中管理设置按钮的状态。

    【讨论】:

      【解决方案4】:

      当您将 disabled 标志设置为 true 时,标准按钮会更改其 UI。

      如果这样不行,可以使用slashdot的灰色标题换色,或者做我经常做的,就是把按钮上的alpha设置为0.6左右。 (但是,如果按钮后面的内容不统一,那么这不是一个好的选择,因为按钮后面的内容都会显示出来。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-20
        • 2022-11-03
        • 1970-01-01
        • 1970-01-01
        • 2020-12-24
        • 2020-04-21
        • 1970-01-01
        • 2020-08-17
        相关资源
        最近更新 更多