iOS 头部图片大小渐变

本文详细解析了一段Objective-C代码,该代码用于在滚动视图中动态更新图片视图的大小,根据偏移量计算宽度变化,以实现与顶部视图同步缩放的效果。主要涉及视图约束布局和滚动视图的交互,适用于自定义导航栏或者顶部图片视图的动态适配。
摘要由CSDN通过智能技术生成

 如图所示效果图

 

核心代码

- (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);
    }];
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值