gpt4 book ai didi

ios - 监控 UITableViewCell 在屏幕上显示多长时间

转载 作者:行者123 更新时间:2023-12-01 19:02:49 27 4
gpt4 key购买 nike

我正在尝试找到最好的方法来保存我的应用程序的用户查看每个 UITableViewCell 的时间,以用于优化和度量目的。我还没有找到可以监控它的工具(Parse、AppSee 等),所以我手动进行。问题是,它的效率非常低。

- (void)scrollViewDidScroll:(UIScrollView *)aScrollView
{
UITableView *tableView = self.tableView; // Or however you get your table view
NSArray *paths = [tableView indexPathsForVisibleRows];

// For getting the cells themselves
NSMutableSet *visibleCells = [[NSMutableSet alloc] init];

for (NSIndexPath *path in paths) {
NSLog(@"visible: %i", path.row);
[visibleCells addObject:[tableView cellForRowAtIndexPath:path]];
}
}

然后,我将在不可见时立即启动 NSTimer,并在不再可见时停止它。
这有许多缺陷:
  • 当 tableview 出现时,用户可以在不滚动的情况下查看第一个单元格 - 因此不会调用此代码。
  • 这段代码每秒调用几十次——一定有更好的方法
  • 例如,当用户正在查看第二个单元格时,将调用此代码,但第一个单元格仍然有几个像素可见。所以应该有一个条件,即调用必须至少有 20% 可见才能使计时器处于事件状态。
  • 如果用户在查看单元格时点击另一个标签栏,此代码不知道并继续计数 .

  • 我的解决方案显然不是最优的。有更好的方法吗?欢迎您的解决方案

    最佳答案

    使用 TableView 委托(delegate)方法和 View Controller 显示方法。具体来说:

    tableView:willDisplayCell:forRowAtIndexPath:
    tableView:didEndDisplayingCell:forRowAtIndexPath:
    viewDidDisappear:

    关于ios - 监控 UITableViewCell 在屏幕上显示多长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21736351/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com