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

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

iOS|iOS 仿支付宝个人主页下拉动效
文章图片
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的宽高比和图片实际宽高比不一致导致的,如果设置成一致,那么一开始下拉的时候就会有放大的效果。
【iOS|iOS 仿支付宝个人主页下拉动效】代码地址:github

    推荐阅读