ios - UITableview中UIScrollView的高度比表格高度短

标签 ios objective-c uitableview uiscrollview

我有一个非常标准的 UITableView,只有 1 个部分。我的问题是 UIScrollView (UITableView 继承的)的长度似乎比表格本身短。我的表按应有的方式加载并显示数据,如下所示:

但是,当我滚动到底部时,右侧的滚动条显示的 ScrollView 高度不正确。滚动条在 UITableView 向下滚动大约一半时停止,并开始收缩。它已到达数据的底部,但我想删除表格底部不必要的空白,如下所示:

该表格非常标准,因为我使用的是字幕样式表格 View 单元格。因此,我没有实现 heightForRowAtIndexPath。我使用的是自定义字体,但即使将其取出,我也会得到相同的结果。所以我不确定为什么会发生这种情况?

这个类非常简单。我正在实现的唯一方法是:

-(void)viewDidLoad
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {

编辑我现在意识到,在我做出选择然后在导航栏上选择返回后,表格会按应有的方式正确显示。返回导航栏后被调用的东西修复了它,但我不知道它是什么!

最佳答案

您的表格 View 底部有空白,因为它的 contentInset.bottom 大于零。

内容插入不为零,因为当键盘显示时,UITableViewController 自动将内容插入设置为键盘的高度。这允许用户访问表格 View 的所有单元格,而不是将底部单元格隐藏在键盘下。了解 “Moving Content That Is Located Under the Keyboard” in the Text, Web, and Editing Programming Guide for iOS了解详情。

由于当您执行到 TableView Controller 的 segue 时,键盘(我假设)会消失,因此我认为此行为是 UIKit 中的一个错误。正如您所发现的,解决方法是确保在对 TableView Controller 执行转场之前告诉第一响应者辞职。

关于ios - UITableview中UIScrollView的高度比表格高度短,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15995011/

相关文章:

ios - 从 iOS native 应用程序打开 LinkedIn 个人资料页面

objective-c - 不用 Mac 学习 Objective C

ios - 快速按下按钮时检查单元格是否被选中

iOS 7,表头 View 不 float

ios - 如何访问ios7中的tableView单元格

ios - TableView 数据源未显示所有行

ios - supportedInterfaceOrientations 在除 6+ 以外的所有 iPhone 上调用

ios - 使用延迟加载在 ScrollView 上加载图像

ios - 使用自动布局设置此 UI

ios - 指定 View 大小何时依赖于多个 subview 的约束