向下滚动时,UITableview 看不到最后一个单元格

Posted

技术标签:

【中文标题】向下滚动时,UITableview 看不到最后一个单元格【英文标题】:UITableview not visible the last cell when scroll down 【发布时间】:2012-08-09 07:34:01 【问题描述】:

我对 ios 很陌生。我有一个填充了许多自定义单元格的 UITableView,但是向下滚动时底部单元格不可见。我的 UITableView 的 Y 值为 44,高度为 480。向下滚动时,只有最后一个单元格的一半可见。我该如何解决这个问题。

提前致谢。

【问题讨论】:

【参考方案1】:

使用 -

  tableView.contentInset = UIEdgeInsetsMake(0, 0, 120, 0); //values

通过的是 - 上、左、下、右

根据您的需要传递底部偏移量。

【讨论】:

这并不能解决实际问题,视图本身未对齐而不是内容。 这帮助我正确解决了一个稍微不同的问题。我想在表格视图滚动的地方通过它的最后一个单元格来显示一个活动指示器。投我一票! 这也解决了我的问题。使用自定义导航控制器控件来呈现表格视图,并遇到与 iDia 相同的问题。 @rishi,你是怎么计算出 120 的? 谢谢你救了我的一天:)【参考方案2】:

这是因为你的tableview的frame设置错了,如果你的view有导航栏,一般使用这个代码:

CGRect frame = self.view.bounds;
frame.height -= 44;

44 是导航栏的高度。

【讨论】:

【参考方案3】:

如果您在顶部有一个可见的状态栏,那么它将占据 20px,这会将您的 tableView 向下推。为避免这种情况,请将 tableView 高度设置为 460 而不是 480。

【讨论】:

你不应该硬编码状态栏高度值,应该使用类似这个答案的东西***.com/a/7038870/707983【参考方案4】:

对我来说这是可行的。

我已经注释掉了我的代码

-(void)viewWillLayoutSubviews

dispatch_async(dispatch_get_main_queue(), ^
    //This code will run in the main thread:
    CGRect frame = tableViewObj.frame;
    frame.size.height = tableViewObj.contentSize.height;//commenting this code worked.
    tableViewObj.frame = frame;

);


就是这样。它对我有用。请确保您在实现文件中的某些位置没有更改 tableview 框架。

【讨论】:

【参考方案5】:

如果您在 iOS7 上并使用导航控制器工具栏,请确保将其设置为半透明:

    self.navigationController.toolbar.translucent = NO;

【讨论】:

以上是关于向下滚动时,UITableview 看不到最后一个单元格的主要内容,如果未能解决你的问题,请参考以下文章

一直向下滚动到 UITableView 的底部

UITableView 仅在向上滚动时更新,而不是向下滚动

向下滚动 uitableview 时,UIView 无法正确显示

uitableview 自定义单元格在向下滚动 uitableview 时丢失其内容

UITableView,如何修复页脚,使其在滚动时永远不会向上或向下移动?

UITableView“向下滚动以更新”