UITableView + добавить смещение содержимого в верхней части


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

есть идеи?

4 70

4 ответа:

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

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

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

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

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

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

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

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

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

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

на

- (void)viewDidLoad

таким образом, первая ячейка не находится в верхней части.

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

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

UITableViewController.view = UITableView

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

UITableViewController.view = UIView

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