自动调整 UILabel 文本大小以适应 UILabel 宽度
Posted
技术标签:
【中文标题】自动调整 UILabel 文本大小以适应 UILabel 宽度【英文标题】:Auto fit UILabel text size to fit UILabel width 【发布时间】:2015-03-19 05:41:51 【问题描述】:我正在做一个日历应用程序。在年页面中,我想显示一年 12 个月,每个月显示 30 天。
这里有问题:
1.现在我正在尝试使用[nsstring stringbyappendingstring]
将 30 天添加到一个 uilabel 中,但是如何自动适应每天之间的每个间隔?
我只能喜欢
1||2||3||4||5||6||7
8||9||10||11||12||13||14
我希望它看起来像
1 || 2 || 3 || 4 || 5 || 6 || 7
8 || 9 ||10||11||12||13||14
||
2. 或者我应该每天添加 uilabel 吗?但是我每个月会得到 30 个 uilabel,在一个视图中每年 365 个 uilabel,这听起来很愚蠢。
谁能帮帮我,拜托!
【问题讨论】:
【参考方案1】:您只需要使用一个标签来显示所需间距的所有日期
1) 创建一个多行标签,设置它的宽度。
2) 通过使用带有所需间距的 stringByAppendingsString 附加所有日期来创建一个字符串。
3) 使用下面的 API 通过保持其宽度固定来计算标签的高度-
#define LABELS_MAX_HEIGHT 10000.0f
CGSize constraintSize = CGSizeMake(label.frame.size.width, LABELS_MAX_HEIGHT);
NSAttributedString *attributedText = [[[NSAttributedString alloc] initWithString:datesString attributes:@NSFontAttributeName: label.font] autorelease];
CGRect rect = [attributedText boundingRectWithSize:constraintSize
options:NSStringDrawingUsesLineFragmentOrigin
context:nil];
[label setSize:rect.size];
【讨论】:
以上是关于自动调整 UILabel 文本大小以适应 UILabel 宽度的主要内容,如果未能解决你的问题,请参考以下文章
调整 UILabel 的大小以适应自定义 UITableViewCell 中的文本,无论宽度如何