gpt4 book ai didi

ios - 使用自动布局让 UILabel 和 UITextField 彼此相邻

转载 作者:可可西里 更新时间:2023-11-01 04:14:15 25 4
gpt4 key购买 nike

我正在尝试将 UILabel 实例标签放置在 UITextField 实例文本字段旁边,就像在 iOS 设置对话框中所做的那样。我在 Florian Kuglers FLKAutoLayout 扩展 ( https://github.com/dkduck/FLKAutoLayout ) 的帮助下使用自动布局和约束。

enter image description here

当我只为标签设置前导约束以及标签和文本字段之间的空间约束时,标签和文本字段的宽度会根据其内容进行调整。 (下图)

但是,当我还为文本字段设置尾随约束时,只有文本字段的宽度会根据其内容进行调整,但标签会被拉伸(stretch)。 (上图)

我想反其道而行之,这样文本字段就会被拉伸(stretch),标签也会根据其内容进行调整。为什么 iOS 决定拉伸(stretch)标签而不是文本字段?

[self addSubview:self.label];
[self addSubview:self.textField];

[self.label alignLeadingEdgeWithView:self predicate:@"10"];
[self.textField constrainLeadingSpaceToView:self.label predicate:@"10"];

// difference between top and bottom pciture
// [self.textField alignTrailingEdgeWithView:self predicate:@"-25"];

最佳答案

enter image description here

已编辑: 因此,在 Rahul 的评论之后,我开始研究宽度和优先级。添加以下宽度约束导致方向有些错误,因为输入了一些很长的值,标签被调整得太小。

[self.label constrainWidth:@"0@1"];

enter image description here

所以我最终阅读了“抗压缩和内容拥抱”(http://www.objc.io/issue-3/advanced-auto-layout-toolbox.html),解决方案是将标签的水平内容拥抱优先级设置为更高的值。

[self.label setContentHuggingPriority:500 forAxis:UILayoutConstraintAxisHorizontal];

然后即使输入大值也会让标签保持与其内容一样的宽度!

解决方案不是添加具有优先级的宽度约束,而是为 UIViews 的固有内容大小设置 Compression Resistance 和 Content Hugging 属性。

enter image description here

关于ios - 使用自动布局让 UILabel 和 UITextField 彼此相邻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18846033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com