iOS 来自未知文本长度的动态标签框架
示例
有时,我们必须根据未知文本长度的动态内容来调整UILabel的大小。在此示例中,UILabel的宽度固定为280个点,而高度则是无限的,比方说为9999。根据文本样式和maximumLabelSize估算框架。
目标C
UILabel * label = [[UILabel alloc] init]; NSString *message = @"Some dynamic text for label"; //设置文本和样式(如果有)。 label.text = message; label.numberOfLines = 0; CGSize maximumLabelSize = CGSizeMake(280, 9999); //280:最大标签宽度和9999-最大标签高度。 //使用UILabel中的字体信息来计算大小 CGSize expectedLabelSize = [label sizeThatFits:maximumLabelSize]; //在iOS7.0中已弃用 //CGSizeExpectedLabelSize=[messagesizeWithFont:label.fontconstrainedToSize:maximumLabelSizelineBreakMode:NSLineBreakByWordWrapping]; //创建一个填充有UILabel框架数据的框架 CGRect newFrame = label.frame; //将框架调整为计算的大小 newFrame.size.height = expectedLabelSize.height; //将计算出的框架放入UILabel框架 label.frame = newFrame;
迅速
var message: String = "Some dynamic text for label" //设置文本和样式(如果有)。 label.text = message label.numberOfLines = 0 var maximumLabelSize: CGSize = CGSize(width: 280, height: 9999) var expectedLabelSize: CGSize = label.sizeThatFits(maximumLabelSize) //创建一个填充有UILabel框架数据的框架 var newFrame: CGRect = label.frame //将框架调整为计算的大小 newFrame.size.height = expectedLabelSize.height //将计算出的框架放入UILabel框架 label.frame = newFrame
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下