美文网首页iOS 艾欧艾斯iOStableview和cell相关
iOS开发仿【喵播】之快速集成tableView头部缩放视图+视

iOS开发仿【喵播】之快速集成tableView头部缩放视图+视

作者: zhifenx | 来源:发表于2016-09-07 22:39 被阅读1975次

    最近在仿喵播做一个视频直播APP,demo基本已经完成,目前在做视频直播聊天室方面的东西,在模仿的过程中遇到很多问题,在解决问题的过程中也学到了很多。仿喵播系列今天先聊一聊快速集成tableView头部缩放视图+视图为模糊效果

    • gif图片展示:
    仿喵播个人界面.gif
    制作的gif文件在这上面看着不够清晰,有晕影;但实际上是很清晰,效果很好。gif文件是用LICEcap Mac版制作的,点击链接下载安装。
    LICEcap使用方法:
    • 打开LICEcap软件,它的界面是一个透明的窗口。
    • 点击“Record”后,我们选择GIF文件的保存位置,然后进入3秒倒计时。
    • 点击“Stop”完成录屏。

    快速集成tableView头部缩放视图

    所谓快速集成即一行代码集成tableView头部缩放视图,这里用的是袁峥Seemygo大牛开源的一个小巧轻便的框架YZHeaderScaleImage,试了一些方法,但是对于喵播这种的tableView头部缩放,这个 YZHeaderScaleImage完全够用。

    • YZHeaderScaleImage使用:

    1、导入YZHeaderScaleImage

    • 直接下载源码,然后将UIScrollView+HeaderScaleImage.hUIScrollView+HeaderScaleImage.m文件拖到工程中。
    • 使用cocoapods导入
    pod 'YZHeaderScaleImage'
    
    pod install
    
    • 在需要的项目文件中添加#import "UIScrollView+HeaderScaleImage.h"导入头文件。
    • tableView或者scrollView都可以使用
    • 设置了tableView头部视图,一定记得清空头部视图背景颜色
     - (void)viewDidLoad {
            [super viewDidLoad];
            // 设置tableView头部缩放图片 *一行代码就集成了*
            self.tableView.yz_headerScaleImage = [UIImage imageNamed:@"header"];
            // 设置tableView头部视图,必须设置头部视图背景颜色为clearColor,否则会被挡住
            
            UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 200)];
            // 清空头部视图背景颜色
            headerView.backgroundColor = [UIColor clearColor];
            self.tableView.tableHeaderView = headerView;
    }
    

    上面是大牛给的试例,从上面的例子中可以看到headerView的高度设置的是200,看他的源码里面默认的高度也是200,如果你想修改headerView的高度,你需要在源码中修改,即UIScrollView+HeaderScaleImage.m文件中修改第88行代码,如下图:

    395708A5-D68E-41F6-875D-970D3A811104.png
    tableView头部缩放图片就是这么简单。下面介绍如何给headerView添加模糊效果。

    如果你用过喵播APP你会知道每当你点进一个房间在视频还没有加载出来之前,会有一个加载界面,喵播用的是一个加载动画和一张具有模糊效果的图片,关于iOS添加图片模糊效果的方法,可以看iOS效果---模糊效果汇总这篇文章,里面详细列出了各种方法。比较了上面的几种方法,我在仿喵播的demo中加载视频时的图片模糊效果,用的是FXBlurView第三方开源库。代码量很少,用着极方面。至于现在说的headerView模糊效果我用的是里面提到storyboard实现模糊效果

    在实现tableView头部图片缩放以后,本来想继续用FXBlurView实现headerView的模糊效果,尝试了修改YZHeaderScaleImage源码加FXBlurView框架的方式达到目的,界面走了很多弯路,会出现很神奇的效果,有兴趣的朋友可以试试看看。如果可以实现请告诉我实现方法,感激不尽。因为的headerView是用xib实现的,所以在折腾了大半天后还是放弃,改用storyboard+YZHeaderScaleImage方式实现。仅仅添加了一个UIVisualEffectView,如图:

    AB39949A-D10D-406E-991D-F6C6304FA0AF.png
    注意:
    1、VisualEffectView和其他控件的层级关系
    2、VisualEffectView的起始Y值,我设置到-200是为了避免上下拉伸tableView的时候出现VisualEffectView覆盖不到背景图片的情况,实践一下便知。
    3、
    41FE73D2-6BBC-424A-B68E-5ACC6501F92A.png 这里可以设置不同的模糊效果。
    最终就完成了快速集成tableView头部图片缩放效果和headerView的模糊效果。如果您有更好的方法可以留言告知,感激不尽。后续还会继续跟新iOS开发仿喵播系列,关于直播和直播聊天室的功能后续会慢慢更。

    相关文章

      网友评论

      • 经天纬地:这个是袁铮的框架吧,我还是建议模仿他的写法自己建一个,这样才能根据自己的项目具体要求进行定制化,不然后面会有点bug,之前踩过
        zhifenx:@经天纬地 不好意思,我看错了!
        zhifenx:@经天纬地 有用过他的框架 不过这个不是 不过现在也没做这个了
      • d58b0834e4d3:我也使用的这个,功能很好的实现了,但是返回就挂了。楼主遇到这个问题没?是怎么解决的?
        zhifenx:@渐单丶 你可以打个全局段点看一下是在哪导致的崩溃,或者看一下打印的崩溃原因,查一下相关资料!
        d58b0834e4d3:我也是使用的这个框架,但是有个问题,真机运行的时候,从下级界面返回直接就挂掉了程序
        zhifenx:@渐单丶 不太明白你说的是啥问题,能详细描述下吗?
      • Amy莫莫:请问你的GIF图是用的什么软件啊?
        zhifenx:@树上蚍蜉 文中有介绍啊,就在gif图片下面一段,还有链接!
      • 陈天增: 好的,谢谢了
      • 陈天增:哦,好的,我想的问你一下创建一个tableviewheaderview之后如何使用,你的代码示例是self.tableView.yz_headerScaleImage = [UIImage imageNamed:@"header"];这是一个imageview无法使用自已创建tableviewheaderview
        zhifenx:@陈天增 你看上面的试例代码,下面的headerView就是需要妮你自己创建的tableHeaderView,最后赋值给self.tableView.tableHeaderView就好啦。
        UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 200)];
        // 清空头部视图背景颜色
        headerView.backgroundColor = [UIColor clearColor];
        self.tableView.tableHeaderView = headerView;
      • 陈天增:有demo吗


        zhifenx:@陈天增 这个demo暂时没有,因为是在公司做的项目用到这个,所以就写了记录下,你可以试着自己做一下,很简单的。

      本文标题:iOS开发仿【喵播】之快速集成tableView头部缩放视图+视

      本文链接:https://www.haomeiwen.com/subject/ggqsettx.html