Tableview滚动反弹并隐藏底部单元格

时间:2009-10-02 05:26:13

标签: iphone uitableview scroll bounce

我有一个在导航控制器下显示的视图。视图顶部包含一个子视图,底部包含表视图。该表可能具有基于数据延伸超出可见高度的行。如果我的行位于最后一个可见行的下方,如果我向上滚动视图,它会反弹,它不会停留在那里。有没有办法让它留下来? 我尝试使父视图成为滚动视图,但没有帮助。我的观点来自XIB。

3 个答案:

答案 0 :(得分:26)

听起来UITableView的大小略大于iPhone屏幕上的可用区域。这可能是因为视图没有考虑到导航栏的大小。作为测试,进入Interface Builder并使UITableView更小,比如说大小的一半,这样你就可以清楚地看到顶部和底部。看看你是否仍然有相同的弹跳。

如果大小正确,UITableView不需要UIScrollView按预期运行。事实上,我现在可以想到的几个原因(除了水平滚动之外),你需要在UIScrollView中使用UITableView。

答案 1 :(得分:0)

在顶级视图控制器中,在"模拟指标" - 设置中,将顶栏和/或底栏(取决于View Controller中显示的内容)设置为&#34 ;不透明&#34 ;.然后调整表视图的大小以适应导航栏和工具栏/标签栏之间的距离。 最后,添加两个约束:

  1. 顶部空间到顶部布局指南
  2. 底部空间到底部布局指南
  3. 无论方向如何,我的工作都很顺利。

答案 2 :(得分:0)

如果您没有使用Storyboard,可以尝试以下(快速)代码:

tableView.contentInset = UIEdgeInsetsMake( (self.navigationController!.navigationBar.frame.origin.y + self.navigationController!.navigationBar.frame.size.height), 0, 0, 0)

self.view.addSubview(tableView)

如果您有工具栏或(如果您使用的是TabBarController),您还需要调整底部:

tableView.contentInset = UIEdgeInsetsMake( (self.navigationController!.navigationBar.frame.origin.y + self.navigationController!.navigationBar.frame.size.height), 0, 0, 0)

self.view.addSubview(tableView)

请注意,这是一个简单且“粗略”的代码。如果需要,你可以让它变得更漂亮:)