0

我尝试在网上搜索,但没有找到明确的答案,所以我来寻求您的专家建议。我有一个带有 2 个标签的视图。两个标签都将显示来自 plist 的不同字符串长度。

当我运行应用程序时,标签将根据字符串长度与其他标签重叠。

下面是我的问题的截图

在此处输入图像描述

4

4 回答 4

1

您必须更改您的 secondLabel 来源。

CGRect frame = secondLabel.frame;
frame.origin.y= firstLabel.frame.origin.y + firstLabel.frame.size.height;
[secondLabel setFrame:frame];
于 2013-09-25T06:53:44.683 回答
0

更好的选择是使用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;

于 2013-09-25T06:46:58.273 回答
-1

您需要设置第二个标签的“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];
于 2013-09-25T06:50:27.513 回答
-1

嗯,您可以通过多种方式解决它。

例如,您可以用所需的文本填充您的第一个标签,然后调用

[label1 sizeToFit]

通过该调用,您的标签现在具有适当的大小,适合您的文本长度。现在您可以将第二个标签放在第一个标签之后。

label2.frame = CGRectMake (x, label1.frame.size.height + ..., .....)

希望能帮助到你!

于 2013-09-25T06:47:35.120 回答