lim*_*mon 7 iphone uilabel ios5 ios6
我正在为iOS> 5.0开发应用程序并使用Xcode 4.6.2为了解释我的问题,我UIScrollView只包含了一堆UILabel.我要在这些UILabels中显示的文本是动态的,但是,UILabel帧是常量,所以如果当前文本不适合帧宽,我需要缩小我的字体大小.所以,我找到了adjustsFontSizeToFitWidth属性UILabel.
这是我直接从UILabel课堂参考中得到的解释.
一个布尔值,指示是否应缩小字体大小以使标题字符串适合标签的边界矩形.
是的,我认为这就是我正在寻找的东西,因为我要展示的文字UILabel总是一行.所以我知道这个属性应该与numberOfLinesproperty一起使用来设置1.
这是我的代码,以实现这一目标.
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];
}
Run Code Online (Sandbox Code Playgroud)
imageNumber是一个int,我用它来把它UILabel放在我UIScrollView的名字的适当位置resultTypeScrollView.resultTypeImageWidth是一个常数我已经定义并设置100以在UILabels 之间给出一些空间.
所以,我的问题是如果文本不适合标签的框架,它会被截断.我希望如果文本不适合框架,字体大小将缩小以适应它.至少,这是我从UILabel 课堂参考中理解的.显然,我错过了什么,但是什么?
至今,
NSLineBreakMode为 NSLineBreakByClipping防止文本被截断.之后,文本不会被截断,但有些字符丢失,之前被截断.minimumScaleFactor来设置不同的值,看它是否有任何效果,但是,根本没有效果.这应该只在不改变许多默认值的情况下工作.已发布的代码未设置adjustsFontSizeToFitWidth,只能获取它.设置看起来像这样:
lbl.adjustsFontSizeToFitWidth = YES;
Run Code Online (Sandbox Code Playgroud)