adjustsFontSizeToFitWidth无法正常工作

时间:2013-07-21 19:32:13

标签: iphone ios5 ios6 uilabel

我正在为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理解的内容。显然,我错过了什么,但是什么?

到目前为止,

  1. 由于我使用自定义字体,我怀疑使用自定义字体会有问题。所以,我改为系统字体之一,它没有效果。
  2. 我尝试将UILabel设置为UILabel以防止文本被截断。之后,文本不会被截断,但有些字符丢失,之前被截断。
  3. 我还使用NSLineBreakMode来设置不同的值以查看它是否有效,但是根本没有效果。

1 个答案:

答案 0 :(得分:8)

这应该可以在不改变许多默认值的情况下工作。发布的代码未设置adjustsFontSizeToFitWidth,它只能获取它。设置如下:

lbl.adjustsFontSizeToFitWidth = YES;