首页 > 解决方案 > 以编程方式添加具有自动布局的 uibutton

问题描述

我想像这样添加 UIButton:

 let switchTheme: UIButton = {
    let button = UIButton.init()
    button.backgroundColor = .red
    button.setTitleColor(.blue, for: .normal)
    button.setTitle(Settings.isLightTheme() ? Strings.Various.switchToDark.value : Strings.Various.switchToLight.value, for: .normal)
    button.translatesAutoresizingMaskIntoConstraints = false
    return button
}()

然后设置约束,如:

switchTheme.bottomAnchor.constraint(equalTo: view.bottomAnchor)
switchTheme.leftAnchor.constraint(equalTo: view.leftAnchor)
switchTheme.rightAnchor.constraint(equalTo: view.rightAnchor)
switchTheme.heightAnchor.constraint(equalToConstant: 40.0)

但它不像它假设的那样显示在底部,而是显示在顶部并且没有应用约束。

在此处输入图像描述

标签: swiftautolayout

解决方案


您需要像这样简单地激活这些约束:

 switchTheme.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
 switchTheme.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
 switchTheme.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
 switchTheme.heightAnchor.constraint(equalToConstant: 40.0).isActive = true

推荐阅读