博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios: 仿照【ONE】应用中的阅读滑动效果
阅读量:5236 次
发布时间:2019-06-14

本文共 2147 字,大约阅读时间需要 7 分钟。

1.想实现的效果:

浏览文章的时候,当向下滑动时候,navigationBar 和 toolbar 隐藏 , 当到结尾时候再向上滑动,navigationBar 和 toolbar 重新显示出来。

2.思路:

首先,这里用来显示文章的是webview ,我们都知道webview中包含scrollview,这样就好办了,我们利用scrollview来实现即可。

 

代码如下:

#pragma mark - UIScrollViewDelegate- (void)scrollViewDidScroll:(UIScrollView *)scrollView{    int currentPostion = scrollView.contentOffset.y;    if (currentPostion - lastPostion > kSlide && currentPostion > 0) {        lastPostion = currentPostion;                //重设frame        [UIView animateWithDuration:kAnimationTime animations:^{            CGRect rc = self.navigationController.navigationBar.frame;            self.navigationController.navigationBar.frame = CGRectMake(0, -CGRectGetHeight(rc), CGRectGetWidth(rc), CGRectGetHeight(rc));                        rc= self.toolbar.frame;            self.toolbar.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height, CGRectGetWidth(rc), CGRectGetHeight(rc));                    self.webView.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height);        }];    }    else if (lastPostion - currentPostion > kSlide && (currentPostion  <= scrollView.contentSize.height-scrollView.bounds.size.height-kSlide))    {        lastPostion = currentPostion;                //重设frame        [UIView animateWithDuration:kAnimationTime animations:^{            CGRect rc = self.navigationController.navigationBar.frame;            self.navigationController.navigationBar.frame = CGRectMake(0, 0, CGRectGetWidth(rc), CGRectGetHeight(rc));                        rc= self.toolbar.frame;            self.toolbar.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height - CGRectGetHeight(rc), CGRectGetWidth(rc), CGRectGetHeight(rc));                        self.webView.frame = CGRectMake(0, CGRectGetHeight(self.navigationController.navigationBar.frame), [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - CGRectGetHeight(self.navigationController.navigationBar.frame) - CGRectGetHeight(rc));        }];    }    }

 

 

ps:不要忘记设置

self.webView.scrollView.delegate = self;

demo示例:

 

转载于:https://www.cnblogs.com/yoon/p/3577044.html

你可能感兴趣的文章
什么是聚合根
查看>>
Delphi使用进行post数据时超时设置
查看>>
global,$GLOBALS[' '] 全局, 浮动float跟margin的注意事项
查看>>
redis 操作使用
查看>>
Python生成随机密码
查看>>
css3
查看>>
string.format大全
查看>>
软件开发基本知识
查看>>
less
查看>>
数据结构与算法(3)- C++ STL与java se中的vector
查看>>
php唯一数
查看>>
Android学习笔记(四十):Preference使用
查看>>
CentOS 6.5 下的截图方法
查看>>
139团队(大型研发团队,大型敏捷开发团队,大型团队结构,敏捷绩效管理)...
查看>>
如何面向用户价值编写敏捷开发用户故事
查看>>
敏捷外包工程系列之一:序言(敏捷外包工程,敏捷开发,CMMI,软件外包,政府项目,银行项目,电信项目)...
查看>>
PHP正则表达式
查看>>
Linux C程序设计大全之gdb学习
查看>>
centos7忘记登录密码修改
查看>>
P1578 奶牛浴场
查看>>