iOS导航条自由缩放实现
来源:互联网 发布:纪录中国app mac 编辑:程序博客网 时间:2024/06/07 13:51
今天正好有时间教大家很常见的一个效果。这也是笔者第一次写博客,后面会不定期的更新内容。好了,话不多说,进入正题吧。
其实实现此此效果很简单。只需要几行代码就可以搞定。
在很多的App中,其实都有这样的需求,上下滚动时候,要其头像也跟着发生相应的变化(用户头像是在系统的导航条)。以前有朋友问过我,可能有的朋友会尝试自定义导航view。其实是没有必要的,之间使用系统自带的导航即可!
通过此片学习,您将学习一下知识点:
1.如何分析实现原理
2.如何实现缩放效果
3.如何讲计算缩放系数
效果图
在开始讲解之前,还是先上传效果图,有图有真相,如下图所示。
实现原理
首先给给导航条添加view和创建tableView
- (void)configUI{ _tableView = [[UITableView alloc]initWithFrame:self.view.bounds style:UITableViewStylePlain]; _tableView.dataSource = self; _tableView.delegate = self; [_tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"UITableViewCell"]; [self.view addSubview:_tableView]; UIView *titleView = [[UIView alloc] init]; self.navigationItem.titleView = titleView; _headerImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"header.jpg"]]; _headerImageView.frame = CGRectMake(0, 0, 70, 70); _headerImageView.layer.masksToBounds = YES; _headerImageView.layer.cornerRadius = 35; _headerImageView.center = CGPointMake(titleView.center.x, 0); [titleView addSubview:_headerImageView];}这里主要是创建表格和titleView,估计你们也看到了我为什么不把imageView直接作为titleVIew,而是我自定义一个view,这样做的好处就是因为titleView会自动被系统设置大小的,而正常情况下,我们的头像是有自己的大小。
接下来就是最关键的地方了,直接上代码
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { if ([scrollView isEqual:self.tableView]) { CGFloat offsetY = self.tableView.contentOffset.y + self.tableView.contentInset.top; CGFloat scale = 1.0; if (offsetY < 0) {// 放大 // 允许下拉放大的最大距离为250 scale = MIN(1.5, 1 - offsetY / 250); } else if (offsetY > 0) { // 缩小 // 允许向上超过导航条缩小的最大距离为250 scale = MAX(0.4, 1 - offsetY / 250); } self.headerImageView.transform = CGAffineTransformMakeScale(scale, scale); }}估计大家看到这里,都明白了,那我就不多说了
小结
阅读完本篇文章,笔者相信大家都可以熟练掌握了,其实就几行代码的事情呀,是不是很简单呢?源代码
本篇文章对应的源代码下载地址:https://github.com/WSmalan/WSScaleHeaderImage
1 0
- iOS导航条自由缩放实现
- iOS导航条自由缩放头像效果
- IOS收缩式导航条的实现
- 多点触控 实现图片自由缩放
- 自由视角摄像机,实现旋转,缩放
- 实现可滑可点的fragment,使上方的导航条随着fragment的切换而随之变动即滑动,导航条可自由滑动
- js实现ios头部导航条模糊效果
- 简易实现导航条
- CSS 实现导航条
- css实现导航条
- [iOS 自定义导航栏/导航条]隐藏系统导航条
- Android-导航栏特效-新闻类APP(仿iOS版网易新闻今日头条的文字渐变缩放特效)
- Android-导航栏特效-新闻类APP(仿iOS版网易新闻今日头条的文字渐变缩放特效)
- Android-导航栏特效-新闻类APP(仿iOS版网易新闻今日头条的文字渐变缩放特效)
- ios导航条添加按钮
- ios设置导航条背景图片
- ios导航条添加按钮
- iOS 导航条背景透明
- SylixOS使用串口传输文件方法简介
- nodejs群聊和私聊
- 虚拟机问题
- JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】
- java 企业网站源码模版 有前后台 springmvc SSM 生成静态化
- iOS导航条自由缩放实现
- 5W1H1V分析法帮你快速了解产品
- 电商搜索引擎
- iOS 学习的整体框架
- 7.(初级)web字体之:装饰文本
- Linux--命令2
- NSLog,LLDB, Breakpoint,EXC_BAD_ACCESS,Address Sanitizer ,iOS开发之Xcode常用调试技巧总结
- IOS响应式编程框架ReactiveCocoa(RAC)使用示例
- Hive配置文件中配置项的含义详解(收藏版)