【问题标题】:How to resize and transform labels?如何调整和转换标签?
【发布时间】:2013-04-05 06:21:45
【问题描述】:

我的应用程序要求用户输入一些详细信息,然后使用标签通过另一个视图显示。

由于用户可以输入可变长度的文本,而标签最初具有固定的长度和宽度,我使用如下代码来调整标签大小:

    CGSize maximumLabelSize = CGSizeMake(296,9999);
         CGSize expectedLabelSize = [yourString sizeWithFont:yourLabel.font 
                                    constrainedToSize:maximumLabelSize 
                                    lineBreakMode:yourLabel.lineBreakMode]; 

            //adjust the label the the new height.  
CGRect newFrame = yourLabel.frame;  
newFrame.size.height = expectedLabelSize.height;  
yourLabel.frame = newFrame;

这些修改的问题是我有很多标签一个接一个。因此,当我更改一个标签的长度时,以下所有标签也需要转换/移动到新位置。

有什么方法可以动态更改所有标签的大小和位置,同时确保最终呈现效果与固定长度标签一样好?

【问题讨论】:

  • 您需要动态管理所有标签的高度。就像取一个 int 变量 'h' 给初始值就像 'yourLabel.frame.size.origin.y'... 之后 h = h + expectedLabelSize.height...给这个 h 值到下一个标签的 y 位置

标签: ios view label transform frame


【解决方案1】:
 int h=10; // Initial Height as you want
        for(int k=0;k<[headItemArray count];k++) {
            CGSize size_txt_overview1 = [[headItemArray objectAtIndex:k] sizeWithFont:[UIFont fontWithName:@"Helvetica" size:18] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
            UILabel *lbl_headitem = [[UILabel alloc]initWithFrame:CGRectMake(3,h, 690, size_txt_overview1.height)];// See the 'h' value
            lbl_headitem.text = [headItemArray objectAtIndex:k];
            [lbl_headitem setTextAlignment:UITextAlignmentLeft];
            [lbl_headitem setBackgroundColor:[UIColor clearColor]];
            [lbl_headitem setTag:k];
            lbl_headitem.numberOfLines=0;  
            [lbl_headitem setTextColor:[UIColor redColor]];
            [lbl_headitem setFont:[UIFont fontWithName:@"Helvetica" size:18]];
            [scrollAttributes addSubview:lbl_headitem];
            h = h + size_txt_overview1.height;// important
        } 

【讨论】:

    猜你喜欢
    • 2011-04-06
    • 2019-01-17
    • 2013-06-14
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    相关资源
    最近更新 更多