使用 Swift 以编程方式更改 UIButton 的大小

thu*_*ief 2 uibutton ios swift

我知道以前有人问过这个问题,但我似乎无法使任何解决方案起作用。我的按钮设置了 AutoLayout,但为了让它们适合 iPhone 4,我需要让它们更短。

我有这个,我在 viewDidLoad、viewDidAppear 和 viewDidLayoutSubviews 中尝试过(我真的不在乎它在哪里,只要它有效)

for button in choiceButtons! {
    if smallScreen {
        button.frame = CGRect(x: button.frame.origin.x, y: button.frame.origin.y, width: button.frame.width, height: 15)
        println("small")
    } else {
        button.frame = CGRect(x: button.frame.origin.x, y: button.frame.origin.y, width: button.frame.width, height: 55)
        button.frame.size.height = 55 //second attempt (what I'd really like to work)
        print("big")
    }
}
Run Code Online (Sandbox Code Playgroud)

打印语句正确执行,所以我知道这是有效的。我已经检查了所有四个按钮的“在构建时删除占位符”选项。我已经尝试完全从 AutoLayout 中的按钮中删除高度约束(这无关紧要,我只是想防止 XCode 对我大喊大叫)。如果没有其他选择,完全以编程方式创建所有四个按钮似乎很乏味但可行,但我觉得我想做的事情应该不会太难。对于它的价值,如果我将完全相同的代码应用于图像,它就可以工作。只是不是我的按钮。

如何使用 Swift 更改按钮的高度?

无法以编程方式更改 UIButton 的框架。?

Jef*_*mas 5

在 Interface Builder 中,为每个按钮的高度创建真正的约束(不是占位符),并为这些约束创建一个插座集合。

for heightConstraint in heightConstraintsForChoiceButtons! {
    if smallScreen {
        heightConstraint.constant = 15
        println("small")
    } else {
        heightConstraint.constant = 55
        print("big")
    }
}
Run Code Online (Sandbox Code Playgroud)