我有一个很标准的UITableView
只有1个部分。我的问题是UIScrollView
(UITableView
继承)的长度似乎比表本身短。我的表加载并显示应该显示的数据,如下所示:
然而,当我滚动到底部时,右侧的滚动条显示滚动视图的高度不正确。滚动条停止向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 {
编辑我现在意识到,在我做出选择然后在导航栏上选择后面时,表格会正确显示。在导航栏上回击时调用的东西可以修复它,我不知道它是什么!
答案 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
的滚动视图。我不确定这是在哪里改变的。我检查了viewDidLoad
和viewDidAppear
中的值。 viewDidLoad
显示的值为零,而viewDidAppear
显示的值为非零。
我所做的就是实现viewDidAppear
。该方法完全空白,并且正确设置了contentInset.bottom
。很奇怪......但它确实有效。