我正在开发一个 iPad 应用程序,在该应用程序上我有一个非常大的 UITableView(大约 10 倍的屏幕宽度和高度),并且在它之上还有一个 UIScrollView,我可以水平滚动。
在每个 UITableViewCell 中,我添加了不同数量的 UIView。我的问题是滚动性能真的很差。所以我在谷歌上搜索了一个解决方案,但没有找到适合我的问题的任何东西。
我认为问题是当滚动完成时整个屏幕被重绘,但我不知道如何限制这个......
任何人都可以提供解决方案吗?
谢谢。
我正在开发一个 iPad 应用程序,在该应用程序上我有一个非常大的 UITableView(大约 10 倍的屏幕宽度和高度),并且在它之上还有一个 UIScrollView,我可以水平滚动。
在每个 UITableViewCell 中,我添加了不同数量的 UIView。我的问题是滚动性能真的很差。所以我在谷歌上搜索了一个解决方案,但没有找到适合我的问题的任何东西。
我认为问题是当滚动完成时整个屏幕被重绘,但我不知道如何限制这个......
任何人都可以提供解决方案吗?
谢谢。
你需要做 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyIdentifier"]; 恢复细胞。如果你还没有,你应该做的是:
在你的
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
方法,你需要:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyIdentifier"];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"MyIdentifier"] autorelease];
}
从 Apple 的文档中查看这一点。
希望这可以帮助。
您将需要保持单元格的可重用性,并且只加载可见区域所需的视图。就像我们对图像进行延迟加载一样。