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

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


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,804评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,262评论 4 61
  • 秋分。清早像往常一样前往自习室的路上,突然觉得空气中的温度不同寻常,一阵冰冷的气息侵袭而来,我有点触不及防。乍暖还...
    宓美人阅读 223评论 0 2
  • 大雪是也阅读 232评论 0 0
  • 忍不代表懦弱,忍不代表亏理,忍不代表好脾气,忍是为了让将来的自己更强大。 小人得志,只是一时,老天有眼,不是不报,...
    lily璇子阅读 221评论 0 0