gpt4 book ai didi

swift - 为什么我不能在具有多个 UIControlState 的 UIButton 上调用 setTitle?

转载 作者:可可西里 更新时间:2023-11-01 02:00:54 26 4
gpt4 key购买 nike

我花了几个小时才发现

button.setTitle(buttonTitle, for: [.normal, .selected])

不同于:

button.setTitle(buttonTitle, for: .normal)
button.setTitle(buttonTitle, for: .selected)

当在 setTitle 函数中使用多个 UIControlState 时,我的标题永远不会显示,并且在我 check out 它们时被设置为 nil。有一些方法可以从 titleLabel 访问它们,但是通过大量的故障排除,结果非常奇怪。我用 titleLabelcurrentTitleisHiddenisSelected 等尝试了十亿种东西,但我终于找到了为了使事情正常进行,我唯一需要更改的是将该行拆分为多行。

我的问题是,为什么它会这样工作?

最佳答案

UIButton().setTitle(String?, for: UIControlState)

setTitle 方法接受您要设置的标题以及您要为其设置标题的 UIControlState。由于 UIControlState 符合 OptionSet 数据类型,因此它接受一个 UIControlState 数组。

想法是,对于您想要设置特定标题的状态,您可以单独设置它们,而对于其余状态,它将只使用为正常状态设置的标题。在你的情况下,你需要做的就是......

button.setTitle(buttonTitle, for: .normal)

如果您想为某些州设置不同的标题,

// buttonTitle1 for all the states 
button.setTitle(buttonTitle1, for: .normal)

// buttonTitle2 for the specified state
button.setTitle(buttonTitle2, for: .selected)

关于swift - 为什么我不能在具有多个 UIControlState 的 UIButton 上调用 setTitle?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46395980/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com