2013-12-04 1 views
4

Я пытаюсь получить текст, выровненный слева от заголовка раздела и другой текст справа от того же заголовка.Возможно ли выравнивание текста как влево, так и вправо в заголовке раздела в виде таблицы?

При использовании инструментальных панелей я использовал гибкую кнопку, чтобы нажимать обе другие кнопки влево и вправо, и мне было интересно, есть ли подобная вещь для заголовков разделов?

Немного больше фона в том, что у меня есть другой раздел в моем представлении таблицы для каждой информации, введенной в каждый другой день. Слева от заголовка раздела я хочу, чтобы дата была введена (ср. 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; 
    } 
} 

На данный момент это выводит его так:

| ср 4 декабря - Today_ _ __ _ ___ |

Я хочу, чтобы это было так:

| ср четвёртой Dec_ _ __ _ __ _ _Today |

ответ

2

Вы не можете сделать это с помощью titleForHeaderInSection. Вместо этого вам нужно будет реализовать viewForHeaderInSection. Верните представление с двумя метками - один влево и один вправо. Разумеется, вам также потребуется реплицировать стандартный заголовок стандартного заголовка таблицы, если это то, что вы хотите.

Смежные вопросы