gpt4 book ai didi

ios - UITableView 改变内容大小

转载 作者:行者123 更新时间:2023-12-01 17:57:48 25 4
gpt4 key购买 nike

我有一个表格 View ,最初在其中显示 N 个图像,当用户向下滚动时,它会在到达底部时加载 N 个更多图像。现在,当用户触摸其中一个图像时,我使用模态 segue 打开另一个 View ,当用户返回时,表格仍保留在触摸的单元格中(这是其中一个图像位于前 N 个加载的图像中时)。但是当用户触摸随后加载的任何一个时,表格大小会恢复为原始大小(加载前 N 个图像时)。

这仅发生在表大小上,而不发生在我用于表数据的 NSMutableArray 上。我使用了以下语句,即使这样也会发生:

// in viewDidLoad

[self.flowTable setDataSource:self];
[self.flowTable setDelegate:self];


// whenever new images are loaded

[self.flowTable reloadData];

当我试图检查发生这种情况的确切时间时,我发现内容大小在调用 segue 之后才会改变。并且在调用“viewDidAppear”方法时,表格的内容大小会减小。知道为什么会发生这种情况吗?

编辑

好吧,我从互联网上懒惰地加载,每当我加载更多数据时,代码看起来像这样:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
// connection finishes loading and the data is prepared to be updated

NSDictionary *flowArr = [NSJSONSerialization JSONObjectWithData:receivedData options:0 error:nil];


[self storeImageData: flowArr];

[self.flowTable reloadData];


}


- (void) storeImageData:(NSMutableArray *)arr
{
for(NSDictionary* data in arr)
{

// image data is stored as convenient and the NSMutableArray is updated as such

[self.imageData addObject: det];

}


}

最佳答案

我看不出你在这里做的任何不寻常的事情。表格 View 的内容大小基于每个部分的行数乘以每个单元格的高度。只要这些数字是正确的,您就会得到正确的内容大小。

如果您真的想确切知道内容大小何时发生变化,您可以将键值观察添加到 TableView 的内容大小,使用类似:

[tableView addObserver:self forKeyPath:@"contentSize" options:0 context:NULL];

然后可以断点 observeValueForKeyPath:ofObject:change:context:准确查看更改发生的时间。

关于ios - UITableView 改变内容大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14303268/

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