无网或断网提示,自定义界面(UIView分类,使用方便)
2016-05-11 本文已影响985人
hu9134
Simulator Screen Shot 2016年5月11日 下午1.57.24.png
简书的无网界面
实现的效果
使用方法
直接将NetTipView拖到项目中,导入文件即可使用,使用方法,详见github地址demo:https://github.com/hukezhu/NetTipView.git
隐藏自定义view:
[self.view hideNetTipView];
显示自定义view,并添加回调方法:
[self.view showNetTipViewWithToDoBlock:^{
//TODO
}];
NetTipView
由于项目中需要添加无网或者断网条件下的提示界面,所以就简单的写了一个提示的界面.记得之前在一份源码中见过类似的场景,但是忘了是哪一个了,也没有找到.
因为项目中多数界面都使用到这个无网提示界面,包含控制器界面和自定义的view还有webView等,所以写了一个使用了UIView的分类,使用起来比较方便.
demo中使用了一个新闻接口,目前上拉加载获取不到数据,就只能这样了,使用了AFN,MJRefresh,MJExtension,代码较乱,请勿喷,谢谢
使用了cocopods,所以打开项目时双击Demo.xcworkspace打开.
分析
项目中使用了原生和webView相结合的方式,所以需要考虑两种情况.
- 原生界面
- UIWebView界面
对于断网无网提示,也要考虑两种情况
- 应用启动时就是无网状态
- 应用使用过程中断网
最终实现的效果:
静态图片借鉴一下简述的界面:
简书的无网界面
使用方法
直接将NetTipView.h 和 NetTipView.m 拖入到项目中,如果想要更新提示文字和按钮文字,直接在NetTipView.h文件中修改.
有一点需要注意:这个自定义view中使用了tag来标记view,需要检查自己的项目中是不是有跟这个view中相同的tag值,如果有相同的,一定要修改,不然会有问题,在源文件中也有标注.
/**
*
* 直接使用这个tag值可能会有问题.因为这里是根据tag值去查找当前view中是否包含本view,如果项目中之前使用了相同的tag值,则会产生错误,
* 所以使用之前建议在项目中全局搜索这个tag值,如果没有,直接跳过;如果有相同的可以修改这个tag值(与本项目中的不相同即可)
*/
#define kNetTipViewTag 0xeef
#define descText @"当前网络不可用,请检查您的网络"
#define buttontitle @"点击刷新"
实现的效果:
实现的效果