gpt4 book ai didi

iphone - 问题滚动 TableView 与内容插入

转载 作者:行者123 更新时间:2023-12-03 18:54:17 26 4
gpt4 key购买 nike

我遇到了一个奇怪的滚动问题,我希望有人能帮助我找出发生这种情况的原因。

我已经包含了我认为与问题相关的代码部分,但很高兴用其他需要的内容更新这篇文章。

我在表格 View 的内容插入区域中实现了拉动刷新 View 。刷新会触发一个 Async NSURLConnection,该连接从网络服务器中提取数据,解析相关信息并根据需要刷新表。

这是刷新过程开始的地方:

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{

if (scrollView.contentOffset.y <= - 65.0f && !self.reloading) {
self.reloading = YES;
[self reloadTableViewDataSource];
[refreshHeaderView setState:EGOOPullRefreshLoading];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.2];
self.tableView.contentInset = UIEdgeInsetsMake(60.0f, 0.0f, 0.0f, 0.0f);
[UIView commitAnimations];
}
}

问题是,如果我在内容插入“可见”时开始滚动(即在重新加载期间),我会得到这种奇怪的行为,我的表格部分不会一直滚动到顶部 - 请参阅屏幕截图以清楚地了解内容我试图在这里描述。

我在下面添加了一些屏幕截图,清楚地表明了当前发生的情况。

有人以前经历过这种情况吗?关于我应该注意什么来尝试修复它有什么想法吗?

提前非常感谢,罗格

alt text

这就是我开始滚动表格的结果。图像顶部的橙色部分是实际的导航栏,我希望表格部分(日期为 2010 年 12 月 1 日)位于此处。

alt text

最佳答案

我假设您的 scrollViewDidScroll 方法中有类似 if (self.reloading) return; 的内容?您可以添加以下内容来解决您的问题:

if (self.reloading) {
if (scrollView.contentOffset.y > -60.0 && scrollView.contentOffset.y < 0.0 && insetOnReload) {
[self.tableView setContentInset:UIEdgeInsetsMake(-scrollView.contentOffset.y, 0.0, 0.0, 0.0)];
}
else if (scrollView.contentOffset.y >= 0.0 && insetOnReload) {
[self.tableView setContentInset:UIEdgeInsetsMake(0.0, 0.0, 0.0, 0.0)];
insetOnReload = NO;
}
return;
}

如果开始重新加载,请将 insetOnReload 设置为 YES

关于iphone - 问题滚动 TableView 与内容插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4365297/

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