Подтвердить что ты не робот

UITableView + добавление содержимого сверху

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

Как?

4b9b3361

Ответ 1

Я не уверен, что следую за вами, но думаю, что у меня такое же затруднение. В моем случае я должен выделить некоторое место для 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)

Ответ 2

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

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

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

Ответ 3

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

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

в

- (void)viewDidLoad

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

Ответ 4

Похоже, вы хотите обернуть "Просмотр" вокруг своего UITableView. Если у вас есть UITableViewController в IB, то UITableView будет автоматически установлен в view of UITableViewController. Вы изменяете свойство view на нормальный UIView и добавляете туда UITableView и присваиваете ему смещение.

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

UITableViewController.view = UITableView

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

UITableViewController.view = UIView

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

Ответ 5

Я совместил этот ответ с этим: fooobar.com/questions/49076/...

Чтобы табличное представление отображалось в верхней части вставки содержимого, чтобы пространство в верхней части не было обрезано за счет небольшой прокрутки табличного представления при первоначальном появлении представления. (18 - мой главный разрыв)

[self.tableView setContentInset:UIEdgeInsetsMake(18,0,0,0)];
[self.tableView setContentOffset:
 CGPointMake(0, -self.songListTable.contentInset.top) animated:YES];

Ответ 6

Swift 5.1

tableView.contentInset.top = 100