【发布时间】:2020-07-03 13:41:23
【问题描述】:
我正在尝试将 UILabel 实例标签放置在 UITextField 实例文本字段旁边,就像在 iOS 设置对话框中所做的那样。我在 Florian Kuglers FLKAutoLayout 扩展 (https://github.com/dkduck/FLKAutoLayout) 的帮助下使用自动布局和约束。
当我只为标签设置前导约束并在标签和文本字段之间设置空间约束时,标签和文本字段的宽度会根据它们的内容进行调整。 (下图)
但是当我还为文本字段设置尾随约束时,只有文本字段的宽度会根据其内容进行调整,但标签会被拉伸。 (上图)
我想反其道而行之,这样文本字段就会被拉伸,并且标签会根据其内容进行调整。为什么 iOS 决定拉伸标签而不是文本字段?
[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"];
【问题讨论】:
-
设置固定宽度
UILabel[self.label constrainWidth:@"==40" height:@"==20"]; -
但我不想修复它。我希望它像它一样适应标签内容,并将剩余的空间留给文本字段。只是在我的示例中名字和姓氏等于 with,但也可能有其他标签。因此,使用固定宽度约束不是答案。 :(
标签: ios objective-c autolayout flkautolayout