iOS 仿支付宝个人主页下拉动效

发现很多App的个人详情页有下拉放大顶部背景图这种动效,本文选择实现类似支付宝个人主页的这种效果,如图:


iOS 仿支付宝个人主页下拉动效_第1张图片
1.gif

原理:

原理也很简单,就是设置tableView的contentInset属性,让向下偏移一定高度开始布局,backHeight就是顶部背景视图的高度:

_tableView.contentInset = UIEdgeInsetsMake(backHeight, 0, 0, 0);

然后在scrollView滑动代理里面动态改变顶部背景视图的高度:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGPoint point = scrollView.contentOffset;
    if (point.y < -backHeight) {
        CGRect rect = _backImageView.frame;
        rect.origin.y = point.y;
        rect.size.height = -point.y;
        _backImageView.frame = rect;
    }
}

注意:

顶部背景视图的imageView需要设置backImageView.clipsToBounds = YES以及backImageView.contentMode = UIViewContentModeScaleAspectFill属性,本案例中下拉的过程中先是逐渐显示图片其余部分,然后再放大显示的,这是因为一开始imageView的宽高比和图片实际宽高比不一致导致的,如果设置成一致,那么一开始下拉的时候就会有放大的效果。

代码地址:github

你可能感兴趣的:(iOS 仿支付宝个人主页下拉动效)