在我的项目中,有一个UILabel
带文本.字体大小为16pt.文本内容根据不同情况而变化.我希望它可以自动调整宽度UILabel
以适应文本的总宽度而不拉伸.
可能吗?
Wil*_*sch 109
假设您已经设置了字体:
label.text = @"some text";
[label sizeToFit];
Run Code Online (Sandbox Code Playgroud)
您还需要定义最大宽度,并告诉程序如果sizeToFit为您提供的宽度大于该最大值,该如何操作.
Mun*_*osh 21
以下是如何操作,假设以下messageLabel
是您希望获得所需效果的标签.现在,尝试这些简单的代码行:
// Set width constraint for label; it's actually the width of your UILabel
CGFloat constrainedWidth = 240.0f;
// Calculate space for the specified string
CGSize sizeOfText = [yourText sizeWithFont:yourFont constrainedToSize:CGSizeMake(constrainedWidth, CGFLOAT_MAX) lineBreakMode:UILineBreakModeWordWrap];
UILabel *messageLabel = [[UILabel alloc] initWithFrame:CGRectMake(20,20,constrainedWidth,sizeOfText.height)];
messageLabel.text = yourText;
messageLabel.numberOfLines = 0;// This will make the label multiline
Run Code Online (Sandbox Code Playgroud)
小智 13
NSString *txt1=@"I am here.";
CGSize stringsize1 = [txt1 sizeWithFont:[UIFont systemFontOfSize:14]];
[label setFrame:CGRectMake(x,y,stringsize1.width,hieght)];
[label setText:txt1];
Run Code Online (Sandbox Code Playgroud)
我在这里看到三种选择.
首先,使标签的大小足以容纳任何文本.这是最简单的,但并不总是运作良好 - 取决于其周围的观点.
其次,Label可以根据较长的文本(adjustsFontSizeToFitWidth
属性)调整字体的大小.这通常是不可取的,元素中的不同字体可能看起来很难看.
最后一个选项是根据其当前保留的文本以编程方式调整标签大小.要计算使用当前字体保存文本所需的大小,请使用以下内容:
CGSize textSize = [[someLabel text] sizeWithFont:[someLabel font] forWidth:someLabel.bounds.size.width lineBreakMode:UILineBreakModeWordWrap];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
86448 次 |
最近记录: |