NavigationBarScaleViewDemo 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
NavigationBarScaleViewDemo 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: MIT
操作系统: 跨平台
收录时间: 2016-04-26

iOS导航条自由缩放头像效果。

image

实现原理

从效果图可以看到以下几点:

  1. 向上移动头像会缩小,但是有下限

  2. 向下移动头像会放大,但是有上限

  3. 头像的起点y始终不变

所以,我们首先要知道如何缩放控件,也就是使用transform来实现。然后每次都需要更新头像的y坐标,以保证y值不变。既然缩小有下限,放大有上限,所以我们应该设置一个最小缩放系数及最大缩放系数。

要设置最小/最大缩放系数,我们就需要计算出来,但是如何计算呢?其实挺简单的,我们只需要设置下拉或者上拉需要处理缩放的最大距离,就可以计算出来了。

计算放大系数: MIN(1.5, 1 – offsetY / 300);
计算缩小系数: MAX(0.45, 1 – offsetY / 300);

假设正常状态下用户头像的大小为70,当放大到最大时,不得超过105;当缩小到最小时,不得小于31.5.则这个最大倍数1.5就是我们期望用户 头像可放大的最大值除以正常状态下的值,即105/70.0=1.5。同样,最小倍数0.45计算公式为:31.5 / 70.0 = 0.45.

为了保证在缩放过程中,y坐标不变,那么就需要动态地更新y坐标,也就是在缩放时,将y坐标固定。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

NavigationBarScaleViewDemo 的相关资讯

还没有任何资讯

NavigationBarScaleViewDemo 的相关博客

iOS 第三方库、插件、知名博客总结

iOS 第三方库、插件、知名博客总结 用到的组件 1、通过CocoaPods安装 项目名称 项目信息 AFNetworking 网络请求组件 FMDB 本地...

NavigationBarScaleViewDemo 的相关问答

还没有任何问答,马上提问

评论 (0)

加载中
更多评论
0 评论
3 收藏
分享
返回顶部
顶部