QQ空间之个性化可拉伸界面

qq空间页面的可拉伸效果,主要在于上下滑动的时候,怎么实现导航栏的颜色变化和图片尺寸的变化

效果展示:

效果图.gif

控件结构

由下至上 self.view > imageview > tableView

导航栏用的是自定义的,便于实现滑动变色效果, UITableView的headView背景色为透明,以便不遮挡下面的图片.

核心代码

滚动代理中实现效果


- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    
    //图片原始尺寸
    CGRect originRect = CGRectMake(0, 0, kScreenWidth, 275);
    
    CGFloat yOffSet = scrollView.contentOffset.y;

    //当滑动到导航栏之前
    if (yOffSet < headHeight) {
        
        CGFloat colorAlpha = yOffSet/headHeight;
        _navBar.backgroundColor = [[UIColor whiteColor] colorWithAlphaComponent:colorAlpha];
        _navBar.titleColor = [UIColor whiteColor];
        
    }else{  //超过导航栏底部
        
        _navBar.backgroundColor = [UIColor whiteColor];
        _navBar.titleColor = [UIColor blackColor];
    }
    
    //手指向上滑动,图片上移
    if (yOffSet > 0) {
        
            CGRect frame = originRect;
            frame.origin.y = originRect.origin.y - yOffSet;
            _topImageView.frame =  frame;
    
    }else{  //手指向下滑动,图片放大
        
            CGRect frame = originRect;
            frame.size.height = originRect.size.height - yOffSet;
            frame.size.width =  frame.size.height * kScreenWidth/275;
            frame.origin.x =  originRect.origin.x - (frame.size.width - originRect.size.width)/2;
              _topImageView.frame = frame;
    }
}

代码已上传github:QQ空间之个性化可拉伸界面

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,747评论 4 61
  • 嗯哼嗯哼蹦擦擦~~~ 转载自:https://github.com/Tim9Liu9/TimLiu-iOS 目录 ...
    philiha阅读 5,195评论 0 6
  • 个人感觉卢思浩同丁丁张和刘同的文风都挺像的,都是怀着批判思维冷眼旁观这个世界,用最平实的言语静静拆穿我们为自己构筑...
    知了小姐阅读 572评论 0 0
  • 姓名:张涛 部门岗位:进口部 【日精进打卡第117天】 【知~学习】 听书 【行~实践】 一、修身 睡到自然醒。走...
    351a0809b14d阅读 122评论 0 0

友情链接更多精彩内容