UITableView не прокручивается вниз - PullRequest
7 голосов
/ 27 ноября 2011

У меня есть UITableView (на UIViewController), на котором я хочу разместить баннер iAd сверху, но под панелью инструментов, которую я уже имею сверху.Я пытаюсь сместить табличное представление (относительно представления), чтобы я мог найти баннер в пустом месте.

Чтобы проверить это, я создаю действие, в котором я смещаю рамку tableView.:

  -(IBAction)iAdAction:(id)sender{

   self.tableViewConc.frame=CGRectMake(0, 94, 320, 367);}

, где 94 - сумма 44 от панели инструментов и 50 от баннера.

Действие работает правильно, но тогда я не могу прокрутить до конца tableView,когда я пробую это, оно приходит в норму.Я попытался изменить высоту tableView в том же действии (430 вместо 367, например), но это не работает.Я также попробовал его на IB, но он тоже не работает.

Я чувствую, что что-то упустил, но не могу вспомнить, что.

Любая помощь?

Спасибо заранее!

Ответы [ 5 ]

17 голосов
/ 27 ноября 2011

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

Не вычисляйте необходимую вам высоту и не вставляйте эти цифры в свой код.Просто выясните, что должно быть в иерархии представлений.Например, вы можете вычислить высоту вашего табличного представления с CGRectGetHeight(self.view.bounds) - CGRectGetMaxY(self.iAdView), а исходное представление у с CGRectGetMaxY(self.iAdView), предполагая, что представление iAd и ваше табличное представление являются подпредставлениями self.view.Или, что еще лучше, просто используйте маски авторазмера или авторазметку, чтобы размер таблицы соответствовал нужным размерам.

10 голосов
/ 15 декабря 2014

Вы можете попробовать

self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 44, 0);

2 голосов
/ 28 июля 2014

Даже мы можем добиться того же в раскадровке.

Выберите tableView -> в элементе управления раскадровкой нажмите «добавить отсутствующие ограничения».Это добавит ограничение для tableView и View.

Это помогло мне решить эту проблему. Screenshot_Link

2 голосов
/ 14 марта 2013

У меня только что был такой неловкий сценарий, когда мой UITableView «подпрыгивал», но не прокручивался до самого дна.Для ME проблема заключалась в том, что я динамически устанавливал высоту строк, и моя последняя ячейка рассчитывалась с высотой -115 (да, отрицательно).Как только я исправил это, чтобы вернуть положительное число, моя прокрутка работала очень хорошо.

0 голосов
/ 31 декабря 2018

Проверьте номер строки, которую вы не видите.

После того, как в вашем viewDidLoad добавьте этот метод:

myTableView.contentInset = UIEdgeInsets(top: 0,left: 0,bottom: yourCellHeight * rowHeight,right: 0)

Я надеюсь, что мне помогло

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