强制视图在 UIStackView 中占用尽可能多的 space
Force a view to take as much space as possible inside UIStackView
我正在使用 Swift 创建我的应用程序 UI 的一部分,我面临的问题是我有一个 UIStackView
和 3 个子视图:2 UI标签和一个UIImageView。这是我的第一个代码
let switchview = UISwitch()
let nodelableview = UILabel()
nodelableview.textAlignment = NSTextAlignment.right
nodelableview.numberOfLines = 0
nodelableview.text = nodes[i].type + " " + nodes[i].node_name
let statLabel = UILabel()
statLabel.textAlignment = NSTextAlignment.left
statLabel.text = nodes[i].stat
let stack = UIStackView()
stack.axis = .horizontal
stack.spacing = 16
stack.addArrangedSubview(statLabel)
stack.addArrangedSubview(nodelableview)
stack.addArrangedSubview(switchview)
cell.nodesView.addArrangedSubview(stack)
此代码的问题在于,当 nodelabelview
包含长文本时,UIStackView 不会扩展为 space 2 行或更多行。所以我将对齐方式设置为 .center
,结果如下
还有空的 space,但第一个 UILabel
没用。如何强制第二个 UILabel
使用可用的 space?
您可能需要为每个标签设置水平 contentHuggingPriority
和 contentCompressionResistance
/切换到与其他标签不同的内容,确保您希望扩展以填充的标签仍然可用 space 拥抱值最低。
优先考虑第二个标签(行数不受限制的标签)的设置是设置为“按比例填充”分布的堆栈视图(这意味着视图的大小基于其固有大小和 hugging/resistance 优先级)
结合左侧标签的 1000 ('required') 的水平“内容压缩阻力优先级”和切换(这意味着 'do not compress')
已解决:
我正在使用 Swift 创建我的应用程序 UI 的一部分,我面临的问题是我有一个 UIStackView
和 3 个子视图:2 UI标签和一个UIImageView。这是我的第一个代码
let switchview = UISwitch()
let nodelableview = UILabel()
nodelableview.textAlignment = NSTextAlignment.right
nodelableview.numberOfLines = 0
nodelableview.text = nodes[i].type + " " + nodes[i].node_name
let statLabel = UILabel()
statLabel.textAlignment = NSTextAlignment.left
statLabel.text = nodes[i].stat
let stack = UIStackView()
stack.axis = .horizontal
stack.spacing = 16
stack.addArrangedSubview(statLabel)
stack.addArrangedSubview(nodelableview)
stack.addArrangedSubview(switchview)
cell.nodesView.addArrangedSubview(stack)
此代码的问题在于,当 nodelabelview
包含长文本时,UIStackView 不会扩展为 space 2 行或更多行。所以我将对齐方式设置为 .center
,结果如下
还有空的 space,但第一个 UILabel
没用。如何强制第二个 UILabel
使用可用的 space?
您可能需要为每个标签设置水平 contentHuggingPriority
和 contentCompressionResistance
/切换到与其他标签不同的内容,确保您希望扩展以填充的标签仍然可用 space 拥抱值最低。
优先考虑第二个标签(行数不受限制的标签)的设置是设置为“按比例填充”分布的堆栈视图(这意味着视图的大小基于其固有大小和 hugging/resistance 优先级)
结合左侧标签的 1000 ('required') 的水平“内容压缩阻力优先级”和切换(这意味着 'do not compress')
已解决: