Мне нужно добавить пустое пространство в верхнюю часть моего UITableView, которое не влияет на размер области содержимого. Сдвиг содержимого вниз или добавление пустой ячейки - это НЕ то, что я хочу делать. Вместо этого я просто хочу смещение.
Как?
Мне нужно добавить пустое пространство в верхнюю часть моего UITableView, которое не влияет на размер области содержимого. Сдвиг содержимого вниз или добавление пустой ячейки - это НЕ то, что я хочу делать. Вместо этого я просто хочу смещение.
Как?
Ответы:
Я не уверен, что слежу за тобой, но думаю, что у меня такое же затруднительное положение. В моем случае я должен выделить немного места для 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)
Вы можете добавить к таблице «пустой» заголовок ... это даст первоначальный вид таблицы со смещением, но как только вы начнете прокрутку, смещение исчезнет. НЕ уверен, что вы этого хотите.
Если вам нужно постоянное смещение и вы еще не используете заголовки разделов, вы можете создать смещение, как описано выше, создав пользовательские представления для заголовков разделов, особенно если у вас только один раздел, это может дать вам вид постоянного смещения. .
Я могу опубликовать образец кода, если он похож на то, что вы ищете.
Похоже, вы хотите обернуть «Просмотр» вокруг своего UITableView
. Если у вас есть UITableViewController
IB UITableView
, автоматически будет установлено значение view
of UITableViewController
. Вы меняете view
свойство на нормальное, UIView
добавляете UITableView
туда свое и даете ему смещение.
--- Изменить --- Я только что прочитал свой пост и подумал, что это не имеет особого смысла :) Когда вы создаете, UITableViewController
вы получаете это (в псевдокоде):
UITableViewController.view = UITableView
Это означает, что фактическая таблица займет все пространство, и вы даже не сможете добавить другие представления. Итак, вам нужно изменить
UITableViewController.view = UIView
и добавьте свою таблицу к этому UIView
Я объединил этот ответ с этим: https://stackoverflow.com/a/9450345/1993937
Чтобы tableView отображался в верхней части вставки содержимого, чтобы пространство наверху не обрезалось, если tableView слегка прокручивается вниз при первоначальном появлении представления. (18 - мой главный пробел)
[self.tableView setContentInset:UIEdgeInsetsMake(18,0,0,0)];
[self.tableView setContentOffset:
CGPointMake(0, -self.songListTable.contentInset.top) animated:YES];