ios - Swift:将容器 View 中的几个标签设置为容器的比率/百分比

标签 ios swift constraints

所以我正在以编程方式制作一个应用程序,并且我有一个包含多个标签的 View 。我想将这些标签均匀地分布在容器中,我知道这可以通过将每个标签的高度设置为容器的百分比来实现。

例如,如果我有 4 个标签,我可以将每个标签的高度设置为其所在容器高度的 25%。

但我面临的问题是,这只有在容器具有声明的恒定高度时才有可能(据我所知),即

myContainer.heightAnchor.contraint(equalToConstant: 20).isActive = true
myLabel.heightAnchor.constraint(equalTo: myContainer.heightAnchor, multiplier: 0.2).isActive = true

这样做,一切正常。但是,如果将容器高度设置为不是常数而是相对于其他东西,那么它就不起作用,即

myContainer.heightAnchor.contraint(equalTo: view.height, multiplier: 0.5).isActive = true
myLabel.heightAnchor.constraint(equalTo: myContainer.heightAnchor, multiplier: 0.2).isActive = true
//THIS DOES NOT WORK^

有谁知道如何让它工作,或者有其他方法可以将标签和其他元素均匀地分布在容器中(没有 Storyboard!)

谢谢。

最佳答案

您是否考虑过使用 UIStackView

我认为您需要做的就是创建堆栈 View ,将其固定到容器 View ,然后添加标签。这样做的好处是,如果您决定要添加或删除标签,它就可以正常工作,而无需调整所有标签约束。

关于ios - Swift:将容器 View 中的几个标签设置为容器的比率/百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42513734/

相关文章:

ios - 如何设置按钮滚动到下一个表格 View 行?

ios - 以编程方式创建 UITableViewCell 约束

ios - 如何显示 SWIFT 的 UITabBar 项目的选定状态

ios - Face ID userFallback 在 iOS swift 中不起作用

ios - UIAlertController 中文本字段之间的空间

objective-c - 调整受约束设计的 View 的大小

sql-server - 规则已被弃用,取而代之的是什么呢(TSQL)?

ios - 删除对象的 CoreDataGeneratedAccessors 似乎没有被删除

ios - 将一个 UIButton 连接到 2 个 segues

swift - 来自 CGAffineTransform 的 UnsafePointer<CGAffineTransform>