我尝试在网上搜索,但没有找到明确的答案,所以我来寻求您的专家建议。我有一个带有 2 个标签的视图。两个标签都将显示来自 plist 的不同字符串长度。
当我运行应用程序时,标签将根据字符串长度与其他标签重叠。
下面是我的问题的截图
我尝试在网上搜索,但没有找到明确的答案,所以我来寻求您的专家建议。我有一个带有 2 个标签的视图。两个标签都将显示来自 plist 的不同字符串长度。
当我运行应用程序时,标签将根据字符串长度与其他标签重叠。
下面是我的问题的截图
您必须更改您的 secondLabel 来源。
CGRect frame = secondLabel.frame;
frame.origin.y= firstLabel.frame.origin.y + firstLabel.frame.size.height;
[secondLabel setFrame:frame];
更好的选择是使用UITextView
而不是,UILabel
但如果您仍然想使用标签,那么使用下面的代码,您可以找到文本的高度,并可以根据该高度设置标签的框架
NSString *text = [arr objectAtIndex:indexPath.row];
CGSize constraint = CGSizeMake(contentWidth - (CELL_CONTENT_MARGIN * 2), 20000.0f);
CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:20] constrainedToSize:constraint lineBreakMode:NSLineBreakByWordWrapping];
CGFloat height = MAX(size.height, 44.0f);
这里 contentWidth 是标签的宽度,CELL_CONTENT_MARGIN = 10;
您需要设置第二个标签的“Y”。获取第一个标签文本的高度,然后将其设置为第二个标签“Y”。
希望它会帮助你。
CGSize LblSize=[[Label1 text] sizeWithFont:[UIFont systemFontOfSize:14.0f] constrainedToSize:CGSizeMake(320.0f, 400.0f)];
UILabel *Label2=[[UILabel alloc] initWithFrame:Label2Rect];
CGRect Label2Rect=[Label2 Frame];
Label2Rect.origin.y=LblSize.height+30.0f; //add some extra spaces, I have added 30.0f here
[Label2 setFrame:Label2Rect];
嗯,您可以通过多种方式解决它。
例如,您可以用所需的文本填充您的第一个标签,然后调用
[label1 sizeToFit]
通过该调用,您的标签现在具有适当的大小,适合您的文本长度。现在您可以将第二个标签放在第一个标签之后。
label2.frame = CGRectMake (x, label1.frame.size.height + ..., .....)
希望能帮助到你!