以编程方式设置UIButton的buttonType

30

我有一个UIButton,这个按钮是在界面设计器中添加的。但是,在这个按钮后面的视图会改变颜色,我需要在InfoDarkInfoLight之间切换按钮类型。然而,奇怪的是,buttonType属性是只读的。那么,我该如何在浅色和深色信息按钮之间切换呢?


2
这不是重复的问题。这个问题是关于在实例化后更改按钮类型的。参考的问题是关于如何在代码中实例化按钮。请删除重复内容。 - osxdirk
Swift 5.2: self.btnFont.buttonType = UIButton.ButtonType.system - Ucdemir
2个回答

54

您无法设置buttonType只读属性,使用下面的代码可能有所帮助:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];

16
当你重写(子类化)UIButton类时,会发生什么? - Paweł Brewczynski
在 Swift 中,如果您正在使用自定义类,则可以使用以下代码:let button = MyCustomeClass.init(type: .custom) - MiTal Khandhar

33

一旦设置了.buttonType,就无法更改。

你可以准备两个按钮,根据背景颜色隐藏其中一个。


显然有一个私有的setter方法,但为什么会有这样的私有方法谁知道呢。谢谢你提到两个按钮的想法,我会采纳的。 - Jonathan.
@Jon:这是私有的,因为设置它将不会将暗色信息按钮转换为浅色。 - kennytm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接