dev-liyang / LYEmptyView

iOS一行代码集成空白页面占位图(无数据、无网络占位图) emptyView-empty set

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

怎么更换空视图展示内容

xiongoahc opened this issue · comments

有个需求:当前页面进来时无数据展示了无数据的图片,但是关掉网络后,重新加载之后应该显示无网络的图片,但是tableView创建的时候给ly_emptyView赋值时已经决定了空视图的样子,所以我想问一下能不能再每次刷新的时候再访问该展示什么内容。我看DZNEmptyDataSet是用代理来做的,但是不太想用那个,各种代理写一大堆。

请查看demo中的"随意切换占位图样式"案例。就是解决类似问题的

刚看了demo,你是在每次准备刷新时之前根据情况才给ly_emptyView 赋值对应的样式,那就不能在tableview创建时就给ly_emptyView赋值了。这样的话得在每个网络请求结果回调和网络请求失败回调中各加上一句代码:给ly_emptyView赋值了

再加上网络请求结果回调和网络请求失败回调中各加的ly_endLoading ,这样一共加了4句代码了

UIView+Empty.m

  • (void)show{

    //当不自动显隐时,内部自动调用show方法时也不要去显示,要显示的话只有手动去调用 ly_showEmptyView
    if (!self.ly_emptyView.autoShowEmptyView) {
    self.ly_emptyView.hidden = YES;
    return;
    }

    [self ly_showEmptyView];
    }

  • (void)hide{

    if (!self.ly_emptyView.autoShowEmptyView) {
    self.ly_emptyView.hidden = YES;
    return;
    }

    [self ly_hideEmptyView];
    }

show方法中self.ly_emptyView.hidden 应该为NO才对

@xuhonggui 这个没毛病的,这里的show是内部私有方法,tableView刚加载时会调用reloadData,这时还没有DataSource所以会调用到这里的show,但是这时用户设置autoShowEmptyView为不自动显隐了,这时就不能显示,明白了吗