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/

相关文章:

iphone - iOS阵列初始化错误

iphone - UITableViewCell 中的复选框图像切换

ios - 如何通过 2 个 View Controller 传递 textfield.text 数据

ios - 使用 WL.Client.connect API 时 MobileFirst 7.1 服务器访问被拒绝

iOS 谷歌云消息传递负载

objective-c - 使用现有的 UINavigationController 在 UIPopoverController 中显示 UIImagePickerController(添加后退按钮)

ios - 以编程方式更改启动画面图像

ios - 具有动态调整单元格大小的可折叠表格 View

ios - 自定义 ios tableview 单元格不工作

swift - UIBarButtonItem 操作不工作 UITableView 单元格