tableView: viewForHeaderInSection: значение по умолчанию? - PullRequest
4 голосов
/ 12 октября 2009

Я хочу иметь один пользовательский заголовок раздела, а остальное - заголовок по умолчанию.

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
return ???;
}

Что мне вернуть, чтобы просто дать представление заголовка по умолчанию?

Ответы [ 3 ]

9 голосов
/ 12 октября 2009

Вид заголовка по умолчанию - nil, без заголовка вообще!

0 голосов
/ 12 октября 2009

Как говорит Саид, возвращаемым значением по умолчанию является "nil".

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

Например, если вы хотите изображение в качестве заголовка для этого раздела, вы должны сделать что-то вроде:

[view addSubview:pictureView];

return view;

Это вернет это представление для раздела, индекс которого вы передали.

0 голосов
/ 12 октября 2009

Ну, в документации не сказано, как обеспечить представление по умолчанию. Вы пытались вернуть nil, чтобы увидеть, что происходит?

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

  • Добавить BOOL ivar в объект делегата tableview с именем shouldShowDefaultHeader.
  • Переопределите метод respondsToSelector, чтобы сделать что-то вроде этого:
if (shouldShowDefaultHeader == YES && [NSStringFromSelector(aSelector) isEqual:@"tableView:viewForHeaderInSection:"]) { return NO; }
return [super respondsToSelector:aSelector];
  • Переключить ивару shouldShowDefaultHeader соответственно.

Редактировать: чтение других ответов с возвращением nil должно работать нормально, а не возиться с селекторами. Тем не менее, это круто, что вы можете сделать это в любом случае. :)

...