我有一个带有三个嵌套标签的垂直 StackView
标签中的内容是动态的。我希望堆栈视图中的 3 个项目彼此相邻,彼此之间的间距非常小。这样一个示例值会读取类似“+ $ 45.67”的内容,但似乎堆栈视图下的所有分发选项都没有实现这一点。每个标签下的个别字体和颜色设置都不同,所以我不能简单地为这些使用 1 个标签。
反正有没有说垂直堆栈视图中的每一列必须只占用嵌套标签占用的空间。
您需要适当地设置标签的内容拥抱和文本对齐方式。
因此,如果整个事情要正确对齐,请执行以下操作:
self.signLabel.setContentHuggingPriority(.init(rawValue: 300), for: .horizontal)
self.currencyLabel.setContentHuggingPriority(.init(rawValue: 400), for: .horizontal)
self.valueLabel.setContentHuggingPriority(.init(rawValue: 500), for: .horizontal)
self.signLabel.textAlignment = .right
self.currencyLabel.textAlignment = .right
self.valueLabel.textAlignment = .right
如果要左对齐,请执行以下操作:
self.signLabel.setContentHuggingPriority(.init(rawValue: 500), for: .horizontal)
self.currencyLabel.setContentHuggingPriority(.init(rawValue: 400), for: .horizontal)
self.valueLabel.setContentHuggingPriority(.init(rawValue: 300), for: .horizontal)
self.signLabel.textAlignment = .left
self.currencyLabel.textAlignment = .left
self.valueLabel.textAlignment = .left
(只要它们保持递增顺序,您就可以改变数字)。
这样做的目的是为布局系统提供有关哪些 UILabel 应首先压缩以包含其内容的线索。
这应该适用于设置为水平的 UIStackView 并使用默认设置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句