效果图:

上代码:

先给一个self.navigationItem.titleView ,然后再放个ImangeView添加到titleView上:

   UIView *titleView = [[UIView alloc] init];
self.navigationItem.titleView = titleView; self.headImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"timg.jpg"]];
self.headImageView.frame = CGRectMake(, , , );
self.headImageView.layer.cornerRadius = ;
self.headImageView.layer.masksToBounds = YES;
//保证头像水平居中
self.headImageView.center = CGPointMake(titleView.center.x, );
[titleView addSubview:self.headImageView];

核心代码:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat scale = 1.0;
NSLog(@"y======%.2f---top======%.2f",scrollView.contentOffset.y,scrollView.contentInset.top);
CGFloat offsetY = scrollView.contentOffset.y + scrollView.contentInset.top;
NSLog(@"offsetY=======%.2f",offsetY); if (offsetY < ) { // 放大
// 允许下拉放大的最大距离为330
// 1.5是放大的最大倍数
// 这个值可以自由调整
scale = MIN(1.5, - offsetY / );
} else if (offsetY > ) { // 缩小
// 允许向上超过导航条缩小的最大距离为330
// 为了防止缩小过度,给一个最小值为0.50
scale = MAX(0.50, - offsetY / );
} self.headImageView.transform = CGAffineTransformMakeScale(scale, scale); // 保证缩放后y坐标不变
CGRect frame = self.headImageView.frame;
frame.origin.y = -self.headImageView.layer.cornerRadius / ;
self.headImageView.frame = frame; }

Demo地址:https://github.com/domanc/HeadImageScale.git

iOS导航栏自由缩放头像效果的更多相关文章

  1. 【Swift】iOS导航栏错乱的原因

    #iOS开发高级技巧#导航栏错乱,也就是导航栏的显示效果与内容区不匹配,引发原因很多,其中最重要的有两个原因: 1.在viewwillappear,viewwilldisappear两个函数中,设置导 ...

  2. 转:ios导航栏设置

    原帖:http://www.cocoachina.com/industry/20131104/7287.html 本文提供的代码需要用Xcode 5来执行.如果你还在使用老版本的Xcode,那么在运行 ...

  3. iOS导航栏背景,标题和返回按钮文字颜色

    在iOS7下,默认导航栏背景,颜色是这样的,接下来我们就进行自定义,如果你仅仅是更改一下背景和颜色,代码会很简单,不需要很复杂的自定义View来替代leftBarItem 更改导航栏的背景和文字Col ...

  4. iOS导航栏的正确隐藏方式【转】

    简介:在项目中经常碰到首页顶部是无限轮播,需要靠最上面显示.有的设置导航栏为透明等一系列的方法,这个可以借助第三方.或者干脆简单粗暴的直接隐藏掉导航栏.可是push到下一个页面的时候是需要导航栏的,如 ...

  5. IOS导航栏颜色渐变与常用属性

    (转:http://www.cnblogs.com/Lingchen-start/archive/2015/10/23/4904361.html) 今年很忙,忙的写日志的时间都很少.  少的可怜. 自 ...

  6. IOS 导航栏属性设置

    IOS 7 以上系统导航栏: [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]]; // 返回按钮颜色 [UINaviga ...

  7. IOS导航栏的使用方法

    本文是使用纯代码实现一个导航栏的效果.单击按钮并且产生事件.基本思路是: 1.创建一个导航栏(UINavigationBar对象) 2.创建一个导航栏集合(UINavigationItem对象) 3. ...

  8. 仿知乎/途家导航栏渐变文字动画效果-b

    demo.gif 效果图如上,简单分析下 1.导航栏一开始是隐藏的,随着scrollView滚动而渐变 2.导航栏左右两边的navigationItem是一直显示的 3.导航栏参考了途家app,使用了 ...

  9. 不可思议的纯CSS导航栏下划线跟随效果

    先上张图,如何使用纯 CSS 制作如下效果? 在继续阅读下文之前,你可以先缓一缓.尝试思考一下上面的效果或者动手尝试一下,不借助 JS ,能否巧妙的实现上述效果. OK,继续.这个效果是我在业务开发的 ...

随机推荐

  1. linux通过wget直接下载jdk,避免用户验证

    下载地址 :http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 下载语句: wget ...

  2. stm32f0系列在SWD模式下载时复位失败

    用stm32f030K6T6做了个小玩意,仿真电路就直接把3.3V,SWDIO,SWCLK,GND引出来连接到j-link的这四个角上,SWDIO和SWCLK引脚既没有上拉也没有下拉.     MCU ...

  3. 使用sigaction来取代signal作为信号处理器函数

    早期ISO C提供了像这样的函数来支持自定义信号处理 typedef void (*sighandler)(int); sighandler signal(sighandler func); 但是由于 ...

  4. bzoj 1023: [SHOI2008]cactus仙人掌图 2125: 最短路 4728: 挪威的森林 静态仙人掌上路径长度的维护系列

    %%% http://immortalco.blog.uoj.ac/blog/1955 一个通用的写法是建树,对每个环建一个新点,去掉环上的边,原先环上每个点到新点连边,边权为点到环根的最短/长路长度 ...

  5. 关于adb devices连不上手机的几种情况

    启动adb 1.打开cmd首次使用adb devices,出现下面这两句,就是正在启动adb服务 C:\Users\admin>adb devices List of devices attac ...

  6. mysql索引之四:复合索引之最左前缀原理,索引选择性,索引优化策略之前缀索引

    高效使用索引的首要条件是知道什么样的查询会使用到索引,这个问题和B+Tree中的“最左前缀原理”有关,下面通过例子说明最左前缀原理. 一.最左前缀索引 这里先说一下联合索引的概念.MySQL中的索引可 ...

  7. linux 文件结构

    Linux常见的目录解释: 目录 描述 / 根目录 /bin 做为基础系统所需要的最基础的命令就是放在这里.比如 ls.cp.mkdir等命令:功能和/usr/bin类似,这个目录中的文件都是可执行的 ...

  8. 软件官网与memcached介绍

    常见官网 http://www.keepalived.org http://nginx.org/ documentation 模块说明 http://www.apache.org/ https://o ...

  9. Codeforces-20152016-northwestern-european-regional-contest-nwerc-A题

    一.题目 二.题意 (1)一开始理解成:它最多需要开多少台电脑.同时,我又有个疑问,既然是最多需要开多少台,那不变成了总共有几个人开几台是最大的结果.然后,WA了无数发.直到比赛结束......其实说 ...

  10. Oracle 10g RAC TAF

    Oracle RAC 同时具备HA(High Availiablity) 和LB(LoadBalance). 而其高可用性的基础就是Failover(故障转移). 它指集群中任何一个节点的故障都不会影 ...