使用scrollview iOS看不到Tableview最后一个单元格

时间:2013-12-23 15:45:51

标签: ios iphone objective-c uitableview uiscrollview

我的文件结构为:View - > ScrollView - > TableView中。 现在tableView的内容是动态确定的。如果内容非常大,则表的最后一条记录不可见。我尝试设置以下代码:

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

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

但在横向模式下创建了问题。表的内容滚动到底部。如果滚动时出现的ScrollBar大小减小,它会起作用吗?

此问题的其他任何修复方法?

enter image description here

3 个答案:

答案 0 :(得分:3)

也许这有点脏,哈哈。使用 -

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

根据您的需要传递底部偏移量。

答案 1 :(得分: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子类

答案 2 :(得分:0)

在设置scrollview的contentSize时,您必须考虑表的视图行高和行数。例如,如果您的tableview的高度为200且tableview包含3行,则您的内容大小的高度应设置如下: -

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