我正在尝试将一些文本对齐到部分标题的左侧,将不同的文本放在同一标题的右侧。
在使用工具栏的时候,我使用了一个灵活的按钮来向左和向右推动其他按钮,我想知道是否有类似的章节标题?
更多背景是我在每个不同的日子输入的每条信息都在我的tableview中有不同的部分。在标题栏的左侧,我想要输入日期(11月20日星期三),在右侧,我想要多少天前(20天前)。
以下是我目前使用的代码:
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
if (section == 0) {
return nil;
}
else {
// This gets the day the data was entered
NSDate * date = [_sectionDates objectAtIndex:(section-1)];
NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"EEE"];
NSString * dateDay = [formatter stringFromDate:date];
[formatter setDateFormat:@"MMM"];
NSString * dateMonth = [formatter stringFromDate:date];
NSDateComponents * components = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear fromDate:date];
NSInteger dateOfDay = [components day];
NSTimeInterval diff = [[NSDate date] timeIntervalSinceDate:date];
NSInteger days = diff / (60.0 * 60.0 * 24);
NSString * dateScript;
if (dateOfDay < 21 && dateOfDay > 4) {
dateScript = @"th";
}
else if (dateOfDay % 10 == 1) {
dateScript = @"st";
}
else if (dateOfDay % 10 == 2) {
dateScript = @"nd";
}
else if (dateOfDay % 10 == 3) {
dateScript = @"rd";
}
else {
dateScript = @"th";
}
NSString * header;
if (days < 2) {
header = [NSString stringWithFormat:@"%@ %i%@ %@ - %@", dateDay, dateOfDay, dateScript, dateMonth, days == 0 ? bToday : bYesterday];
}
else {
header = [NSString stringWithFormat:@"%@ %i%@ %@ - %i %@", dateDay, dateOfDay, dateScript, dateMonth, days, bDaysAgo];
}
return header;
}
}
此时此输出如下:
| 12月4日星期三 - 今天_ _ __ _ ___ |
我希望它是这样的:
| Wed Wed Dec_ _ __ _ __ _ _今天|
答案 0 :(得分:2)
您无法使用titleForHeaderInSection
执行此操作。您需要实现viewForHeaderInSection
。返回带有两个标签的视图 - 一个在左边,一个在右边。当然,如果这是您想要的,您还需要复制标准表部分标题的默认外观。