ios - 为什么在设置框架时不能更改按钮高度?

标签 ios swift

我正在测试一个带有按钮的示例项目。我写了这个,但它不能改变按钮的高度。
怎么了?

class ViewController: UIViewController {

@IBOutlet var test: UIButton!

override func loadView() {
    super.loadView()

    var newFrame = test.frame
    newFrame.size = CGSizeMake(newFrame.width, newFrame.height * 10)
    test.frame = newFrame
}

}

并获得我设置的相同高度。

最佳答案

把你的代码放在

viewDidLayoutSubviews

调用super之后。理论上你需要等到自动布局引擎完成后再修改框架,否则它会为你设置。在这种情况下,这可能是在 didLoad 上发生的情况,自动布局可能尚未完成。

不是设置框架,而是设置按钮的约束。这样您就可以完全控制。特别是当您将其他控件与按钮一起布局时。让您的生活更轻松。大多。

为了您的引用,请查看有关自动布局和自适应用户界面的 wwdc session 。

希望这对您有所帮助。

关于ios - 为什么在设置框架时不能更改按钮高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35815233/

相关文章:

ios - Swift - PrepareForSegue 无法传递 sender.tag(其他 ViewController 标签中的值为 nil)

ios - 如何使用 Swift 从 HealthKit for ios 应用程序获取循环持续时间

swift - swift 抛出可选错误最干净的方法是什么?

swift - iOS 8 : How can I make a dial pad interface?

ios - Ionic 4应用程序在iOs 13上要求蓝牙许可

ios - 在 iOS 模拟器中使用 MPMediaPickerController 时出现运行时错误

ios - 在 iOS 上使用 Branch.io 在 applicationDidBecomeActive 上崩溃

ios - 使用 dequeueReusableCell 重写单元格

iOS Swift - 自定义 UITableViewCell 不适用于标签栏

ios - 如何约束 2 个高度不等的 ui View 并在不同方向工作