UITableView + Добавить смещение контента сверху - PullRequest
80 голосов
/ 26 февраля 2010

Мне нужно добавить некоторое пустое пространство в верхней части моего UITableView, которое не влияет на размер области содержимого. Сдвиг содержимого вниз или добавление пустой ячейки - это НЕ то, что я хочу сделать. Вместо этого я просто хочу смещение.

Как?

Ответы [ 4 ]

270 голосов
/ 07 июля 2010

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

[self.tableView setContentInset:UIEdgeInsetsMake(50,0,0,0)];

значения, которые он принимает: UIEdgeInsetsMake (вверху, слева, внизу, справа).

Альтернативно то же самое со Swift:

self.tableView.contentInset = UIEdgeInsetsMake(50, 0, 0, 0)

Swift 4.2:

self.tableView.contentInset = UIEdgeInsets(top: 50, left: 0, bottom: 0, right: 0)
5 голосов
/ 26 февраля 2010

Вы можете добавить «пустой» вид заголовка к таблице ... это даст первоначальный вид таблицы, чтобы иметь смещение, но как только вы начнете прокручивать, смещение исчезнет. Не уверен, что ты этого хочешь.

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

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

4 голосов
/ 01 сентября 2011

Я объединил ответ Джигзата с:

[self.tableView scrollRectToVisible:CGRectMake(0, 0, 320, 1) animated:NO];

в

- (void)viewDidLoad

так что первая ячейка не сверху.

2 голосов
/ 26 февраля 2010

Звучит так, как будто вы хотите обернуть a 'Вид' вокруг вашего UITableView. Если у вас есть UITableViewController в IB, UITableView будет автоматически установлено на view из UITableViewController. Вы изменяете свойство view на обычное UIView, добавляете туда UITableView и задаете ему смещение.

--- Edit --- Я только что прочитал свой пост и подумал, что в этом нет особого смысла :) Когда вы создаете UITableViewController, вы получаете это (в псевдокоде):

UITableViewController.view = UITableView

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

UITableViewController.view = UIView

и добавьте свою таблицу к этому UIView

...