iOS 头部图片大小渐变

 如图所示效果图

 

核心代码

- (void)updateBannerSizeWithOffset:(CGFloat)offsetY
{
    /*
     30 是 从图片开始变小时候的偏移量a 到和顶部视图变得同样大小的时候偏移量b 的差 ,
     是一个合适的值,没有特定意义.
     即 从图片开始变小到图片和顶部视图相同大小的时候,滚动了30 像素
     40 是 图片开始变小的时候tableView的偏移量
     注意,70是 图片和顶部视图相等大小的时候, tableView的偏移量
    */
    ///每滚动一个像素宽度的变化量
    /*
     202 是大图的宽度 127 是顶部导航栏的图片的宽度
     */

    CGFloat widthOffsetOfEveryOffset = ((202 * rectScale() - 127 * rectScale()))/30 * rectScale();
    ///offsetY 偏移量对应减小的宽度
    CGFloat widthOff = (offsetY - 40 * rectScale()) * widthOffsetOfEveryOffset;
    CGFloat width = 222 * rectScale() - widthOff;
    width = MIN(222 * rectScale(), width);
    [self.imgView mas_updateConstraints:^(MASConstraintMaker *make) {
        make.width.mas_equalTo(width);
        make.height.mas_equalTo(width * 89 / 202);
    }];
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值