【问题标题】:iOS, how to draw the dynamic length of text?iOS,如何绘制文本的动态长度?
【发布时间】:2012-01-05 15:53:42
【问题描述】:

图片为:http://www.flickr.com/photos/71607441@N07/6641626163/

背景是 UIImageView,蓝色部分我想显示为图像的“标题”。 我使用了 UILabel,但文本的长度是动态的。可以是一行,也可以是两行,最多两行。如果文本超过两行,则会被截断。

蓝色部分看起来像“Microsoft Word 中的突出显示”,但不是“iOS UILabel.text 中的突出显示”

有人可以帮助我吗?

【问题讨论】:

    标签: ios uiview uiimage uilabel


    【解决方案1】:

    试试这个代码:----

            CGSize maximumSize = CGSizeMake(320, 30);
    
    UILabel *newsLabel = [[UILabel alloc] init];
                        newsLabel.textColor = [UIColor whiteColor];
                        newsLabel.font = [UIFont boldSystemFontOfSize:11];
                        newsLabel.backgroundColor = [UIColor clearColor];
                        newsLabel.lineBreakMode = UILineBreakModeWordWrap;
                        newsLabel.numberOfLines = 0;
                        lineBreakMode:newsLabel.lineBreakMode];
                        CGSize dateStringSize = [@"Text Input" sizeWithFont:newsLabel.font 
                                                                           constrainedToSize:maximumSize 
                                                                               lineBreakMode:newsLabel.lineBreakMode];
                        CGRect dateFrame = CGRectMake(5, 5, 320, dateStringSize.height); //breath can be any desired float value
    
    
                        newsLabel.text = @"Text Input";
                        newsLabel.textAlignment = UITextAlignmentCenter; 
                       newsLabel.frame = dateFrame;
    

    【讨论】:

    • 谢谢。我试过你的代码。这不是我想要的。在最后一行,如果它很短,我想把标签剪到中间。所以可能有两个 UILabel 来解决它。但是不知道第一条线怎么画,第二条线怎么画,怎么计算。
    【解决方案2】:

    您可以使用以下方法找到标题所需的像素大小:

    CGSize size = [UILabel.text sizeWithFont:yourFont];
    

    还有:

    CGSize size = [UILabel.text sizeWithFont:yourFont lineBreakMode: yourLineBreakMode];
    

    然后您可以使用这些尺寸(size.width、size.height)来设置您的 UILabel 的框架。

    希望这会有所帮助。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-28
      相关资源
      最近更新 更多