【问题标题】:How to change origin of elements based on another elements in ios如何根据ios中的另一个元素更改元素的来源
【发布时间】:2013-08-05 12:34:41
【问题描述】:

对不起,伙计们有一个简单的疑问,但我找不到任何答案。我的问题是我想根据其他元素更改元素的来源。为了更正确,例如,如果我有三个标签,我将每个标签设置在相同的 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];

【问题讨论】:

    标签: ios uielementcollection


    【解决方案1】:

    您可以使用前一帧,因为您使用的是[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";
    

    【讨论】:

    • k 如果我没有使用尺寸来适应我只是通过设置行数方法在标签中显示一个段落现在我如何计算原点
    • 那么你应该使用 [label1.text sizeWithFont:label1.font constrainedToSize:CGSizeMake(label1.frame.size.width, 9999)];这将使您获得取决于 label1 的字体和宽度的文本高度。
    • 我的最后一个问题是如何根据第三个标签的 originViewProfileResultSrollview.frame=CGRectMake(0, 0, 320,1000); 限制滚动视图的高度[ViewProfileResultSrollview setContentSize:CGSizeMake(320, 3500)];
    【解决方案2】:

    你可以让它变得简单:

    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 用于您的其他标签!

    希望对您有所帮助!

    【讨论】:

    • k 如果我没有使用尺寸来适应我只是通过设置行数方法在标签中显示一个段落现在我如何计算原点
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    • 2021-10-12
    • 1970-01-01
    • 2011-07-17
    • 2012-01-29
    相关资源
    最近更新 更多