swift - 使用约束以编程方式创建 UILabel?
问题描述
我想要做的是每次在我的代码中发生特定操作时以编程方式创建一个新的 UILabel。我知道我想给标签的 x、y 和高度,但我不想给它一个固定的宽度。我想约束边,使 UILabel 宽度等于屏幕的宽度,并且如果方向翻转,标签宽度将会改变。
我考虑过使用:
CGRect(x:, y:, width:, height:)
但是,如果我使用它,我必须给它一个设定的宽度,所以我认为它不会起作用。
我也尝试过使用:
CGPoint(x:, y:)
然后设置前导、尾随和高度锚,然而,这似乎也不起作用,因为即使它编译了,当我尝试创建新的 UILabel 时出现错误。
我对 Swift 编程有点陌生,所以我不确定是否有明显的解决方法。
解决方案
您可以使用以下代码以编程方式创建 UILabel。
private let label: UILabel = {
let label = UILabel()
label.translatesAutoresizingMaskIntoConstraints = false
label.numberOfLines = 0
label.text = "Hello World"
return label
}()
然后在你的 viewDidLoad()
addSubview(label)
NSLayoutConstraint.activate([
topAnchor.constraint(equalTo: label.topAnchor),
bottomAnchor.constraint(equalTo: label.bottomAnchor),
leadingAnchor.constraint(equalTo: label.leadingAnchor),
trailingAnchor.constraint(equalTo: label.trailingAnchor)
])
推荐阅读
- javascript - 在 A-Frame 中拖放对象
- html - 文本框宽度根据 HtmlAttributes 的数量而变化
- r - dailyReturn: to_period(xx, period = on.opts[[period]], ...) 中的错误:不支持的类型
- javascript - Preact-CLI + 样式化组件。不会再水合
- iis - 在将显示资源的 IIS 工具上监控 Ip
- ios - 如何在情节提要管理的 UIViewControllers 中进行依赖注入?
- php - 在 drupal 7 中添加多个用户来管理同一个帐户
- javascript - JS展平数组
- r - 最小化平方和函数,然后提取方差-协方差
- c - 在 C 中逐行读取 X&Y 坐标并将它们存储在不同的数组中