UITableview中UIScrollView的高度比表高度短

时间:2013-04-14 02:10:23

标签: ios objective-c uitableview uiscrollview

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

然而,当我滚动到底部时,右侧的滚动条显示滚动视图的高度不正确。滚动条停止向UITableView的一半左右滚动,它开始收缩。它到达了数据的底部,但是我想摆脱桌面底部有不必要的空白,如下所示:

该表非常标准,因为我正在使用Subtitle Style表视图单元格。因此,我没有实施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 {

编辑我现在意识到,在我做出选择然后在导航栏上选择后面时,表格会正确显示。在导航栏上回击时调用的东西可以修复它,我不知道它是什么!

3 个答案:

答案 0 :(得分:1)

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

内容插入非零,因为UITableViewController会在键盘显示时自动将内容插入设置为键盘的高度。这允许用户访问所有表格视图的单元格,而不是将底部单元格隐藏在键盘下方。有关详细信息,请参阅“Moving Content That Is Located Under the Keyboard” in the Text, Web, and Editing Programming Guide for iOS

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

答案 1 :(得分:0)

您是否尝试为tableview关闭autoresizesSubviews?

答案 2 :(得分:0)

正如@robmayoff指出的那样,contentInset.bottom具有非零值,抛出了UITableView的滚动视图。我不确定这是在哪里改变的。我检查了viewDidLoadviewDidAppear中的值。 viewDidLoad显示的值为零,而viewDidAppear显示的值为非零。

我所做的就是实现viewDidAppear。该方法完全空白,并且正确设置了contentInset.bottom。很奇怪......但它确实有效。