【问题标题】:how to make UILabel dynamically without overlapping with other UILabel如何动态制作UILabel而不与其他UILabel重叠
【发布时间】:2013-09-30 15:10:56
【问题描述】:

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

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

下面是我的问题的截图

【问题讨论】:

    标签: iphone ios objective-c


    【解决方案1】:

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

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

    [label1 sizeToFit]
    

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

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

    希望对你有帮助!

    【讨论】:

      【解决方案2】:

      您需要设置第二个标签的“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];
      

      【讨论】:

        【解决方案3】:

        更好的选择是使用 UITextView 而不是 UILabel 但如果你仍然想使用 lable 那么 使用下面的代码,您可以找到文本的高度,并可以根据该高度设置标签的框架

        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;

        【讨论】:

          【解决方案4】:

          您必须更改您的 secondLabel 来源。

          CGRect frame = secondLabel.frame;
          frame.origin.y= firstLabel.frame.origin.y + firstLabel.frame.size.height;
          [secondLabel setFrame:frame];
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-06-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多