Как программно добавить представление внутри UITableView? - PullRequest
1 голос
/ 14 декабря 2011

В Интерфейсном Разработчике довольно просто добавить UIView к UITable и показать его правильно, просто перетащите и отпустите, и все готово. Но теперь это будет необязательно, поэтому его нужно размещать программно.

Вот как это выглядит в конструкторе интерфейсов: How it looked like in the Interface Builder

Когда я добавил новое представление в качестве подпредставления, оно показывалось поверх UITableView -контента, но содержимое должно иметь некоторое смещение. Я попробовал это с помощью следующего кода:

self.scrollView.frame = CGRectMake(0, -140, self.scrollView.frame.size.width, self.scrollView.frame.size.height);
[self.tableView addSubview:self.scrollView];
[self.tableView setContentInset:UIEdgeInsetsMake(140,0,0,0)];
[self.tableView setContentOffset:CGPointMake(0, -140) animated:NO];

Это, похоже, работает, показывает правильно ... Но когда я прокручиваю вниз, заголовок раздела остается на 140 пикселей сверху. Поэтому я полагаю, что использую неправильный подход, но совершенно не знаю, как это исправить. Может ли кто-нибудь дать мне толчок в правильном направлении?

1 Ответ

2 голосов
/ 14 декабря 2011

Хорошо, я чувствую себя действительно глупо.После нескольких часов попыток я кое-что подумал ... Просто проверил источник файла .xib и сравнил тот, что с подпредставлением, с тем, который без.Появились следующие вещи:

  • UIView был частью подпредставления UITableView.
  • Была добавлена ​​следующая ссылка: <reference key="IBUITableHeaderView" ref="204195654"/>.

Итак, изменил код так:

[self.tableView addSubview:self.scrollView];
[self.tableView setTableHeaderView:self.scrollView];

И это работает!

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