在 iOS 开发中,UILabel 是一个十分常见的视图控制器。它能够显示文本,并依据文本的长度主动缩放以适应视图的大小。这是一个十分实用的性能,能够进步用户体验,缩小眼睛的疲劳。
要实现 UILabel 字体依据文字长度主动放大,须要应用 Xcode 自带的 textContainer 参数设置 label 的字体大小。具体步骤如下:
1、在你的视图控制器中增加一个 UILabel。
2、设置 label 的文本内容。
3、将 textContainer 设置为零碎默认的字体大小,如 14。
4、在代码中拜访标签控制器中的 subview[struct_XXXXXXXXXXXXXXXXXXXXXx.xib .#MsgTextContainer tag=ATT vent=behavior],将其字体大小设置为依据文本长度主动放大的字体大小,例如,如果文本长度小于等于 20,则将字体大小设置为 12;如果文本长度大于等于 20,则将字体大小设置为 14。
示例代码:
1、增加 UILabel 并设置文本
// 在你的视图控制器中增加一个 UILabel
UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 200, 30)];
myLabel.text = @"Hello, world!";
// 设置 label 的文本内容
[myLabel sizeToFit];
// 设置 label 的文本内容
[myLabel setTextAlignment:NSTextAlignmentCenter];
[myLabel setTextColor:[UIColor whiteColor]];
[myLabel setTextInteractionEnabled:YES];
2、设置 label 的字体大小为依据文本长度主动放大
// 获取视图控制器中的 UILabel
UILabel *myLabel = self.view.subviews[ATT_MyLabel];
// 将标签的字体大小设置为依据文本长度主动放大的字体大小
NSInteger maxLength = 20;
if ([myLabel.text length] <= maxLength) {myLabel.textContainer.font = [UIFont systemFontOfSize:12];
} else {myLabel.textContainer.font = [UIFont systemFontOfSize:14];
}
// 从新设置标签的文本内容
[myLabel sizeToFit];
[myLabel setTextAlignment:NSTextAlignmentCenter];
[myLabel setTextColor:[UIColor whiteColor]];
[myLabel setTextInteractionEnabled:YES];
在下面的示例代码中,咱们首先在视图控制器中增加了一个 UILabel,并设置了其文本内容。而后,咱们将 textContainer 设置为零碎默认的字体大小,并在代码中拜访标签控制器中的 subview[struct_XXXXXXXXXXXXXXXXXXXXXx.xib .#MsgTextContainer tag=ATT vent=behavior],将其字体大小设置为依据文本长度主动放大的字体大小。在示例代码中,咱们将文本长度小于等于 20 的状况下将字体大小设置为 12,将文本长度大于等于 20 的状况下将字体大小设置为 14。
须要留神的是,咱们只能对视图控制器中的控制器对象的 subviews 中的 UILabel 应用此办法进行字体大小的主动放大。如果你想对其余视图控制器中的控制器对象的 subviews 中的控制器对象的 subviews 中的控制器对象的 subviews 中。
本文由 mdnice 多平台公布