0

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

然而,当我滚动到底部时,右侧的滚动条显示的滚动视图高度不正确。滚动条UITableView在 开始收缩的地方停止滚动大约一半。它到达了数据的底部,但是我想去掉表格底部的不必要的空格,如下所示:

该表非常标准,因为我使用的是字幕样式表视图单元格。因此,我没有实施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 {

编辑我现在意识到,在我做出选择然后在导航栏上重新选择后,表格会正常显示。在导航栏上回击时会调用一些东西来修复它,我不知道它是什么!

4

3 回答 3

1

您的表格视图在底部有那个空格,因为它contentInset.bottom大于零。

内容插入非零,因为UITableViewController当键盘显示时,会自动将内容插入设置为键盘的高度。这允许用户访问所有表格视图的单元格,而不是将底部单元格隐藏在键盘下。阅读适用于 iOS 的文本、Web 和编辑编程指南中的“移动位于键盘下的内容”以了解详细信息。

由于当您对 table view 控制器执行 segue 时键盘(我假设)消失了,我认为这种行为是 UIKit 中的一个错误。正如您所发现的,解决方法是确保在执行对​​ table view 控制器的 segue 之前告诉第一响应者辞职。

于 2013-07-03T07:04:15.760 回答
0

您是否尝试过为您的 tableview 关闭 autoresizesSubviews?

于 2013-04-14T04:06:48.613 回答
0

正如@robmayoff 所指出的,contentInset.bottom有一个非零值,使滚动视图UITableView关闭。我不确定这是在哪里改变的。我检查了viewDidLoad和中的值viewDidAppearviewDidLoad显示值为零,而viewDidAppear显示值非零。

我为解决这个问题所做的只是实施viewDidAppear。该方法完全空白,并且contentInset.bottom正在正确设置。很奇怪......但它的工作原理。

于 2013-07-02T20:00:06.803 回答