我正在为iOS开发应用程序> 5.0并使用Xcode 4.6.2
为了解释我的问题,我有UIScrollView
只包含一堆UILabel
。我要在这些UILabel
中显示的文本是动态的,但是UILabel
的框架是常量,所以如果当前文本不适合框架宽度,我需要扩展我的字体大小下降。所以,我发现了adjustsFontSizeToFitWidth
的{{1}}属性。
以下是我直接从UILabel
类引用中获得的解释。
一个布尔值,指示是否应缩小字体大小以使标题字符串适合标签的边界矩形。
是的,我认为这就是我正在寻找的东西,因为我要在UILabel
中显示的文字总是一行。 所以我知道这个属性应该与UILabel
属性一起使用来设置1.
这是我的代码,以实现这一目标。
numberOfLines
for (NSString *currentImage in self.imagesNames)
{
UILabel *lbl = [[UILabel alloc]initWithFrame:CGRectMake(imageNumber*resultTypeImageWidth, 10, 75, 35)];
[lbl setFont:[UIFont fontWithName:@"GothamRounded-Bold" size:25]];
[lbl setNumberOfLines:1];
[lbl setText:currentImage];
[lbl setBackgroundColor:[UIColor clearColor]];
[lbl setTextColor:[UIColor colorWithHue:0.07 saturation:1 brightness:0.49 alpha:1.0]];
[lbl adjustsFontSizeToFitWidth];
[lbl setTextAlignment:NSTextAlignmentCenter];
imageNumber++;
[self.resultTypeScrollView addSubview:lbl];
}
是一个 int ,用于将此imageNumber
放置在名为UILabel
的{{1}}中的适当位置。 UIScrollView
是我定义的常量,设置为100以在resultTypeScrollView
s之间留出一些空格。
所以,我的问题是如果文本不适合标签的框架,它会被截断。我希望如果文本不适合框架,字体大小将缩小以适应它。至少,这是我从resultTypeImageWidth
class reference理解的内容。显然,我错过了什么,但是什么?
到目前为止,
UILabel
设置为UILabel
以防止文本被截断。之后,文本不会被截断,但有些字符丢失,之前被截断。NSLineBreakMode
来设置不同的值以查看它是否有效,但是根本没有效果。答案 0 :(得分:8)
这应该可以在不改变许多默认值的情况下工作。发布的代码未设置adjustsFontSizeToFitWidth
,它只能获取它。设置如下:
lbl.adjustsFontSizeToFitWidth = YES;