2013-08-05 49 views
1

对不起,一个简单的疑问,但我找不到任何答案。我的问题是我想改变基于另一个元素的元素的起源。例如,如果我有三个标签,则要更加正确。我将每个标签设置在同一个x轴上,但是不同的y轴逐一设置。如果第一个标签内容增加,第二个和第三个标签的y轴应自动增加。所以我怎么能计算呢..如何根据ios中的另一个元素更改元素的起源

UILabel *label1 =[[ UILabel alloc]init]; 
label1.frame=CGRectMake(10, 50, 10, 150); 
[email protected]"Favorite Cuisine "; 

[ViewProfileResultSrollview addSubview: label1]; 

[label1 sizeToFit]; 
label1.textColor=[UIColor grayColor]; 

UILabel *label2 =[[ UILabel alloc]init]; 
label2.frame=CGRectMake(10, 80, 10, 150); 
[email protected]"Preferred Dress Style"; 

[ViewProfileResultSrollview addSubview: label2]; 

[label2 sizeToFit]; 
label2.textColor=[UIColor grayColor]; 

UILabel *label3 =[[ UILabel alloc]init]; 
label3.frame=CGRectMake(10, 120, 10, 150); 
[email protected]"Spoken Languages"; 

[ViewProfileResultSrollview addSubview: label3]; 

[label3 sizeToFit]; 
label3.textColor=[UIColor grayColor]; 

回答

0

你可以使用一帧,因为您使用以下[label1 sizeToFit];

举例标签2:

UILabel *label2 =[[ UILabel alloc]init]; 
label2.frame=CGRectMake(10, label1.frame.origin.y+label1.frame.size.height+30, 10, 150); 
[email protected]"Preferred Dress Style"; 
+0

k如果我没有使用大小,以适应我只是通过设置行数方法显示一个段落标签现在我怎么可以计算原点 –

+0

然后你应该使用[label1.text sizeWithFont:label1.font constrainedToSize:CGSizeMake( label1.frame.size.width,9999)];这将使您获得依赖于label1的字体和宽度的文本的高度。 – Architect

+0

这个效果很好!谢谢 –

0

你可以很容易:

float  currHeight = 7.0; 
UILabel *label = [[UILabel alloc] initWithFrame: CGRectMake(0.0, currHeight, self.view.frame.size.width, 0.0)]; 
[label setText: @"your text"]; 
[label sizeToFit]; 

CGRect labelFrame = label.frame; 
labelFrame.size.height = label.contentSize.height; 
label.frame            = labelFrame; 

[self.view addSubview: label]; 

currHeight += label.frame.size.height + 5; 

而你可以使用currHeight作为你的其他标签!

希望它会帮助!

+0

k如果我没有使用大小,以适应只是通过设置行数的方法显示标签中的段落现在我怎么可以计算原点 –

相关问题