Ram*_*ain 1 cocoa-touch uitableview ios
我有一个表格视图,其中我最初显示N个图像,当用户向下滚动时,它会在到达底部时加载N个更多图像.现在,当用户触摸其中一个图像时,我使用模态segue打开另一个视图,当用户返回时,表格保留在触摸的单元格中(这是其中一个图像位于前N个加载图像中).但是当用户触摸随后加载的任何一个时,表格大小将恢复为原始大小(当前N个图像被加载时).
这只发生在表大小而不是我用于表数据的NSMutableArray.我使用了以下语句,即使这样,也会发生这种情况:
// in viewDidLoad
[self.flowTable setDataSource:self];
[self.flowTable setDelegate:self];
// whenever new images are loaded
[self.flowTable reloadData];
Run Code Online (Sandbox Code Playgroud)
当我试图确切地检查这一点时,我发现直到调用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];
}
}
Run Code Online (Sandbox Code Playgroud)
我在这里看不到任何与众不同的东西.表视图的内容大小基于每个部分中的行数乘以每个单元格的高度.只要这些数字正确,您就可以获得正确的内容大小.
如果您确实想知道内容大小何时发生变化,可以使用以下内容将键值观察添加到表视图的内容大小:
[tableView addObserver:self forKeyPath:@"contentSize" options:0 context:NULL];
Run Code Online (Sandbox Code Playgroud)
然后,您可以断点observeValueForKeyPath:ofObject:change:context:以准确查看更改发生的时间.
| 归档时间: |
|
| 查看次数: |
2429 次 |
| 最近记录: |