gpt4 book ai didi

iphone - UITableView willDisplayCell - 发生了奇怪的事情

转载 作者:行者123 更新时间:2023-12-03 19:34:57 30 4
gpt4 key购买 nike

我有我的数据源 (productsAry),它是通过 SQLite 填充的,我一次获取 25 个项目。我正在调用“willDisplayCell”UITableView 委托(delegate),当 indexPath.row 等于 productsArry 计数时,它将获取新数据并重新加载 TableView 。这工作得很好,没有任何问题,但假设数据源有 100 个对象,这些对象显示在 TableView 中,然后 productsArry 已使用较少的对象(例如 50)进行过滤并执行 reloadData,这又没问题了,但是问题位于 willDisplayCell 委托(delegate)内。由于某种原因,在用户不滚动的情况下调用此方法。因此它认为单元格 25 也已滚动,因此现在它将从数据库中获取下一组行。它将继续执行此操作,直到达到最后一组数据中的 100 个对象,或者没有其他内容可从过滤器中获取。

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell    forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (([self.productsArry count] != 0) && (indexPath.row == [self.productsArry count]))
{
self.currentOffset += TableviewRowCount;
[self performSelector:@selector(reloadTableView:) withObject:nil afterDelay:0.2];
}
}

- (void)reloadTableView:(id)sender
{
NSLog(@"reloadtable");
[self fetchData];
[self.productTableView reloadData];
}

如果您需要了解任何其他可能有助于解决问题的信息,请告诉我。

最佳答案

我发现这里的主要问题是表格不知道单元格的高度,因此它假设操作系统的默认值并且单元格将被禁用,在表格计算布局后它会获得正确的高度。

因此,要解决此问题,只需添加

self.tableView.estimatedRowHeight = 100 // or your estimate 

关于iphone - UITableView willDisplayCell - 发生了奇怪的事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7727961/

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