所以我在Storyboard中并排了两个UILabels。第二个标签应该与第一个标签的右边缘对齐(尾随约束为1),但是我还需要第一个标签(左边的标签)来设置它的宽度等于它的内容大小,除非它达到最大宽度。目测:
|标记一个文本| |标记两个文本|
我需要以下约束:
1)标签1应该宽度调整宽度,除非它达到最大尺寸。
2)标签2应始终与标签1的右边缘对接
如何在故事板中进行设置?
答案 0 :(得分:108)
label2
到label1
。从弹出窗口中选择“水平间距”。双击约束。将常量更改为1。label1
最大宽度:选择label1
。转到顶部菜单栏,选择编辑器> Pin>宽度。双击约束。将关系更改为< =并将常量更改为最大宽度。label1
32个点,从顶部布局指南固定了34个点。注意:请注意,我没有必要创建约束来使label1
的宽度反映其内容大小。内容大小限制是自动生成的。
答案 1 :(得分:6)
答案 2 :(得分:1)
请先使用以下代码获取textSize:
CGSize textSize = { 230.0, 10000.0 };
CGSize size = [[NSString stringWithFormat:@"%@", yourLabelText]
sizeWithFont:[UIFont systemFontOfSize:10]
constrainedToSize:textSize
lineBreakMode:NSLineBreakByWordWrapping];
然后使用此内容大小设置您的第一个标签框架:
UILabel *lblFirst = [[UILabel alloc] initWithFrame:CGRectMake(X, Y, W, size.height)];
lblFirst.lineBreakMode = YES;
lblFirst.lineBreakMode = NSLineBreakByWordWrapping;
lblFirst.numberOfLines =size.height;
lblFirst.backgroundColor = [UIColor clearColor];
[self.view addSubview:lblFirst];
然后第二个标签框架将是:
UILabel *lblFirst = [[UILabel alloc]
initWithFrame:CGRectMake(lblFollowerName.frame.size.width + lblFollowerName.frame.origin.x, Y, W, H)];