美文网首页iOS小项目牛叉的demo学无止境
封装一个对于无网络、无内容时展示的库,进来看一下动图秒懂

封装一个对于无网络、无内容时展示的库,进来看一下动图秒懂

作者: 被帅醒的小吴同志 | 来源:发表于2017-02-12 00:19 被阅读691次

    前言

    由于公司项目做的新闻资讯,必然少不了对于无新闻内容的展示和对于无网络时的展示
    举个例子:当加载新闻详情页时处于一个无网络状态时,我们就需要对其进行展示无网络图片,好了,需求明白了

    来张gif图瞬间明了

    应用中示例.gif

    不墨迹,直接贴github,希望各路大神来喷

    开启传送门:

    WyhShowEmpty

    先来张demo展示图

    demo示例.gif

    思路

    首先肯定应该能做到全局对于ViewController进行无网络/无内容展示,那么索性直接对UIViewController添加方法 (类别)

    其次若展示无内容时,应需要针对数据源进行判断展示,例如当数据源为空时,即展示无内容,那么方法参数里起码应该包含数据源个数信息

    其次就是因人而异,任人发挥的自定义样式问题了,这个不做过多解释

    注意大神可以移步了,以下是很基础的解释说明,耐心的就多看一会吧,支持一下


    所有文件

    类建的虽然多,但我觉得不能少,为了以后好维护,可以多增加一些功能,整体框架不能变,队形不能散

    UIViewController+WyhShowEmpty为主体文件,处理布局和逻辑判断,说到布局,就需要运用一点最基础的<objc-runtime>机制在类别中添加属性

    Style文件是单独抽出来的类, 用于处理所有子控件的样式,这也是最合理的部分,这样就实现了对于样式的抽离,在主体文件是根据样式进行分配init

    其他类不做过多解释了,代码大家下载去看吧

    应用中实际调用代码示例:

    -(void)loadNetWork{
    
        [[AFHTTPSessionManager manager] POST:url parameters:body progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
            if ([responseObject[@"code"] isEqualToNumber:@0]) {
    
                dispatch_async(dispatch_get_main_queue(), ^{
                [self.tableView reloadData];
                //成功回调里添加
                [self wyh_showEmptyMsg:@"很抱歉暂无更新" dataCount:self.dataSource];
                });
            }
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            //失败回调里添加
            [self wyh_showEmptyMsg:@"网络不给力,点击刷新" dataCount:0 isHasBtn:YES Handler:^{
                [self loadNetWork];
            }];
        }];
    
    }
    
    

    修复内容如下

    增加对于UIView的类别,并使其成为底层实现,ViewController是针对UIView的封装

    修复了在移除empty后依然有点击事件的bug

    修复了在不同尺寸的View上还依然展示屏幕大小的empty的bug

    喜欢的github帮点个star ,支持一下,谢谢各位

    相关文章

      网友评论

      • 雪_晟:怎么检测网络通知所有的页面添加占位图 还是在访问某个接口的时候判断
        被帅醒的小吴同志:@雪_晟 访问接口如果失败了或者没数据就调
      • 布袋的世界:swift能调用吗?貌似是可以 showEmptyMsg?
        被帅醒的小吴同志:@布袋的世界 试试配置一下 http://m.blog.csdn.net/article/details?id=40421629

      本文标题:封装一个对于无网络、无内容时展示的库,进来看一下动图秒懂

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