我正在做一个日历应用程序。在年份页面中,我想显示一年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)创建一个多行标签,设置其宽度。
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];