如何根据ios中的其他元素更改元素的来源

时间:2013-08-05 12:34:42

标签: ios uielementcollection

对不起家伙一个简单的疑问,但我找不到任何答案。我的问题是我想根据另一个元素更改元素的来源。为了更正确,例如,如果我有三个标签,我将每个标签设置在相同的x轴但不同的y轴一个接一个。如果第一个标签内容增加第二个和第三个标签的y轴应该自动增加。所以我怎么能算出它..

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

[ViewProfileResultSrollview addSubview: label1];

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

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

[ViewProfileResultSrollview addSubview: label2];

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

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

[ViewProfileResultSrollview addSubview: label3];

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

2 个答案:

答案 0 :(得分:0)

您可以使用上一帧,因为您使用的是[label1 sizeToFit];

标签2的示例如下:

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

答案 1 :(得分: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用于其他标签!

希望它会有所帮助!