iOS开发中关于微信朋友圈停留在上次浏览位置的实现思路

看这篇文章的人肯定使用过微信,不知道你有没有注意到一个现象:我们点击进入朋友圈浏览朋友圈,然后返回到“发现”主页面,在短时间内再次进入朋友圈会发现页面停留在了上一次浏览的位置。
iOS开发者都知道像朋友圈这样的页面都是每次进入的时候创建一个新的页面,当从该页面返回上一个页面的时候此页面就被销毁掉了。
那么如何实现微信的效果呢?

实现思路

1.记录朋友圈页面滑动的位置
2.不让朋友圈这个页面销毁(使用单例)
我采用的是第二种实现思路。先看效果

效果

0.0git.gif

核心代码

- (void)viewDidDisappear:(BOOL)animated{
[super viewDidDisappear:animated];
disappearTime = 0;
self.timer = [NSTimer scheduledTimerWithTimeInterval:1 repeats:YES block:^(NSTimer * _Nonnull timer) {
    disappearTime ++;
    NSLog(@"disappearTime:---%lu", disappearTime);
    if (disappearTime == 2) {
        [self.tableView setContentOffset:CGPointMake(self.tableView.contentOffset.x, -_y) animated:YES];
    }
}];
}

解释:在页面消失后到一定时间让Tableview滑动到顶部。

demo地址:***https://gitee.com/liangsenliangsen/wechat_friends_circle_location

这里还要说一些单例,单例大家都熟悉,记得在最开始使用单例的时候都会重写alloc等一系列方法防止其他开发人员使用的时候让单例出现多份不同的实例。我看了IQKeyboardManager(也是单例)这个三方的写法,它并没有去重写那些方法,而是直接禁止用户去使用alloc方法。


0.0单例.png

决定今后就这样写单例了。

****本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。😊***

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,763评论 8 265
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,167评论 1 32
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,503评论 25 709
  • 你就像那朵高傲的玫瑰 伫立于百花之上 黑夜让你看见了未来的影子 你从来不会害怕 独自徘徊 只想感受夜的馈赠 月亮 ...
    jihua_usc阅读 138评论 0 0
  • 白天正人君子, 晚上地痞流氓。 天天操皇上的心, 年年干乞丐的活。 狗瞅排骨吐舌头, 蜡守寺庙流眼泪。 见官员常呼...
    坦人阅读 2,614评论 48 75