我想在加载完成后更改表的偏移量,该偏移量取决于加载到表上的单元格数量.

在SDK上是否可以知道uitableview加载何时完成?我在委托和数据源协议上都看不到任何东西.

我不能使用数据源的计数,因为只加载了可见的单元格.

推荐答案

改进为@RichX答案: lastRow可以是[tableView numberOfRowsInSection: 0] - 1((NSIndexPath*)[[tableView indexPathsForVisibleRows] lastObject]).row. 因此,代码将为:

-(void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if([indexPath row] == ((NSIndexPath*)[[tableView indexPathsForVisibleRows] lastObject]).row){
        //end of loading
        //for example [activityIndicator stopAnimating];
    }
}

UPDATE: 嗯,@htafoya的 comments 是对的.如果您希望此代码检测从源加载所有数据的结束,它不会检测,但这不是最初的问题.此代码用于检测何时显示所有应该可见的单元格.这里使用willDisplayCell:是为了使用户界面更流畅(单元格通常在willDisplay:呼叫后快速显示).你也可以用tableView:didEndDisplayingCell:试试.

Ios相关问答推荐

UIImage大小调整工作,但转换为上传数据时恢复到原始大小

如何在SwiftUI中拥有基于操作系统版本的条件修饰符?

如何在iOS中以编程方式推送另一个页面?

为什么applicationState发布者只发布一次?

保存和读取登录到 keys 串不工作 IOS swift

更改初始控制器无效

从视图模型中更新 EnvironmentObject

如何在字段包含字典数组的firestore上查询?

在 UICollectionView 上从右到左对齐

CocoaPods 找不到 podFirebase/Core的兼容版本 | cloud_firestore, Flutter

UITableView 页脚,停止浮动内容

iOS:应用程序在安装应用程序时未征求用户许可.每次都获得 kCLAuthorizationStatusNotDetermined - Objective-c & Swift

iOS 中是否有用于自定义振动的 API?

'+entityForName: nil 不是合法的 NSManagedObjectContext 参数 - 核心数据

什么是伞头?

关闭通过模态 segue 显示的视图

在 iOS 上编写文件

使用 swift 将本地 html 加载到 UIWebView

openURL:在 iOS 10 中已弃用

Twitter api 文本字段值被截断