Как добавить заголовок к разделу в UITableView? - PullRequest
3 голосов
/ 24 августа 2011

Я просмотрел все шоу, но не могу найти, как просто определить свой собственный заголовок раздела .. Пока я пробовал это.

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{

}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    return 20; 
}

из того, что я прочитал, это два делегата, которые вам нужны, чтобы добавить свой собственный заголовок ... поэтому я задаюсь вопросом, что входит в tableView: viewForHeaderInSection:

Я пытался

if (section == 0){
   return @"header one";
}

но это не порезало горчицу ... любая помощь будет оценена.

Ответы [ 4 ]

10 голосов
/ 24 августа 2011

Если вам нужен заголовок, переопределите этот метод в UITableViewDataSource, а не в двух, упомянутых выше.

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
3 голосов
/ 24 августа 2011

Следующие помогут вам.

    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
         return 1;
    }
    - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
    {
         UIView *av=[[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 22)]  autorelease];
         NSString * weekdayString = [self getDayFromDate:testDate];
         UILabel *lblStr = [[UILabel alloc]initWithFrame:CGRectMake(40, 2, 100, 20)];
         lblStr.text = @"header one";
         lblStr.backgroundColor = [UIColor clearColor];
         lblStr.textColor=[UIColor whiteColor];
         lblStr.font = [UIFont boldSystemFontOfSize:15];
         [av addSubview:lblStr];
         [lblStr release];     
    }
    - (CGFloat)tableView:(UITableView *)tableViewheightForHeaderInSection:(NSInteger)section {
         return 40;
    }
2 голосов
/ 24 августа 2011

Просто используйте это:

// Это метод делегата, который отсутствует в TableView.

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    if (section == 0){
         return @"header one";
      }

}

тогда как, если вы хотите добавить View в заголовок или хотите сделать пользовательские вещи, вам нужно использовать этот метод делегата:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section;
2 голосов
/ 24 августа 2011
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

Ожидает, что вы вернете объект, который является UIView, например сам UIView или что-то вроде UILabel.

Итак, что вы можете сделать, это вернуть UILabel, который затем содержит ваш заголовок. Пример:

UILabel *label = [[UILabel alloc] init];
[label setText:@"Section 0"];
[label autorelease];
return label;

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

Если вы ищете только основной текст, то ответ Гамоззи - то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...