2013-12-23 4 views
3

У меня есть структура файла как: Вид -> ScrollView -> TableView. Теперь содержимое таблицыView динамически определяется. Если содержимое достаточно велико, последняя запись таблицы не отображается. Я попытался установить следующий код:Tableview last cell не отображается с помощью scrollview iOS

self.scrollView.contentSize = CGSizeMake(320.0,568.0); 

[self.scrollView setContentOffset:CGPointMake(self.scrollView.contentOffset.x, 0) 
         animated:YES]; 

но создал проблему в ландшафтном режиме. Содержимое таблицы получает прокрутку до большого дна. Если размер ScrollBar, который появляется при прокрутке, уменьшится, будет ли он работать? Любое другое исправление для этой проблемы? enter image description here

+0

Проверьте настройки автоматической компоновки в раскадровке/xibs тоже ... возможно, там что-то не так – CainaSouza

+1

Это согласно Apple. «Вы не должны внедрять объекты UIWebView или UITableView в объекты UIScrollView. Если вы это сделаете, может возникнуть непредвиденное поведение, потому что события касания для двух объектов могут быть перемешаны и неправильно обработаны». – santhu

ответ

1

Ваш tableView высота предположительно, ScreeHeight-NavBarHeight. В вашем случае, похоже, что вы tableView выше, чем видимая высота экрана, доступная для него.

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

- (void)viewDidLayoutSubviews { 
    CGFloat navbarHeight = 44; //In iOS7, this is supposed to be 64 but you should dynamically calculate it or better use constraints 
    CGRect tempFrame = self.view.frame; 
    self.tableView.frame = CGRectMake(tempFrame.origin.x, tempFrame.origin.y, tempFrame.size.width, tempFrame.size.height - navbarHeight); 
} 

ПРИМЕЧАНИЕ: Этот код должен пойти в UITableViewController подклассов

0

Вы должны принять в высоту строки вид рассмотрения таблицы и количество строки в то время как настройка contentSize Scrollview в. Например, если высота вашего Tableview составляет 200 и TableView содержит 3 строки, высота вашего размер содержимого должен быть установлен следующим образом: -

self.scrollView.contentSize = CGSizeMake(320.0, (200 * 3)); 
[self.scrollView setContentOffset:CGPointMake(self.scrollView.contentOffset.x, 0) 
        animated:YES]; 
+0

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

3

Может быть, это своего рода грязный, лол. Использование -

tableView.contentInset = UIEdgeInsetsMake(0, 0, 120, 0); //values passed are - top, left, bottom, right 

Проложить нижнее смещение согласно вашим потребностям.

Смежные вопросы