Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

一次最多加载两个控制器? #111

Open
zhuzhengwei opened this issue May 16, 2018 · 5 comments
Open

一次最多加载两个控制器? #111

zhuzhengwei opened this issue May 16, 2018 · 5 comments

Comments

@zhuzhengwei
Copy link

很多情况 我们是不希望 滑动到第二个页面 再返回第一个页面 重新加载第一个页面
目前见到的主流app都是这样处理的
这个库 处理的方式有点不友好。建议增加 控制 复用还是不复用的属性控制

@Suzhibin
Copy link

Suzhibin commented May 17, 2018

demo 里 有处理
NSTimeInterval currentStamp = [[NSDate date] timeIntervalSince1970];
if (self.infoList.count && currentStamp - _menuInfo.lastTime < 60 * 60) {
return;
}
_menuInfo.lastTime = currentStamp;

在 复用的页面 请求的时候前加入 此段代码 就好了 @zhuzhengwei

@tingyuyisheng
Copy link

这样子处理也不行.
if (self.infoList.count && currentStamp - _menuInfo.lastTime < 60 * 60) {
return;
}
这个条件如果满足了.那下面的请求方法也就不走了.比如我下拉刷新.那也不走了请求方法

@Suzhibin
Copy link

Suzhibin commented May 24, 2018

此判断 会保证 你的请求自动走一次 在返回在某段时间内不会在走,下拉刷新 是用户手动下拉的 为什么不会走?

  • (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    NSTimeInterval currentStamp = [[NSDate date] timeIntervalSince1970];
    if(self.infoList.count && currentStamp - _menuInfo.lastTime <60 * 60){
    return;
    }
    _menuInfo.lastTime = currentStamp;
    [self 请求数据];或 [self.header beginRefreshing];
    }
  • (void)viewDidLoad {
    [super viewDidLoad];
    [self 创建刷新控件];
    RefresHeader *header = [RefreshHeader headerWithRefreshingBlock:^{
    [self 请求数据];
    }];
    }
    @tingyuyisheng

@zhuzhengwei
Copy link
Author

zhuzhengwei commented May 25, 2018

这个处理没什么用吧
0 -> 1 - > 2 标签 分别滚动一段距离 再返回0 还是回到顶端
把scrollToTop contentOffset 都去掉也是一样
可以看一下类似 今日头条 是停留在 曾经浏览过的地方
@Suzhibin

@Suzhibin
Copy link

这个处理 只是针对数据逻辑的,滚动多少个标签 再返回0 ,一段时间内也 不会在重新请求了。
这个框架 是复用VC的,所以你返回0 是重新读取了缓存池的VC,位置不会停留曾经浏览过的地方。如果想要这种效果,我有个思路 你可以试试,

  • (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    保存当前位置 key可以是栏目id
    }

  • (void)setMenuInfo:(MenuInfo *)menuInfo {
    _menuInfo = menuInfo;
    根据key 读取位置 移动到位置(此方法需要开预加载 )
    }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants