swift - 以编程方式添加具有自动布局的 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)
但它不像它假设的那样显示在底部,而是显示在顶部并且没有应用约束。
解决方案
您需要像这样简单地激活这些约束:
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
推荐阅读
- c# - 对象稍微移动到应该停止的点(Unity 2D)
- java - JUnit:我错过了什么
- tensorflow - 如何使这个“$ export TFHUB_CACHE_DIR=/my_module_cache”指令在 Windows 中工作?
- ocaml - C 接口:failwith() 是否泄漏内存?
- git - 无法在 github 上发布项目
- javascript - 使用 Fraction.js 将小数转换为最接近 1/16 的分数
- c++ - 确保套装新颖性的有效方法
- asynchronous - 在 Flutter 应用程序中处理异步 wifi 检查
- java - 爪哇 | 整数到字符操作 ASCII
- microsoft-graph-api - 使用没有身份验证令牌的 Graph API 的 Microsoft 帐户照片