iOS - 网络数据加载等待页面的简单实现

原创 2015年11月17日 23:37:41

iOS系统提供的加载等待控件UIActivityIndicatorView(传说中的菊花), 有时候难免有点单调生涩. 故在此简单封装了一下:

#import <UIKit/UIKit.h>

#define kSideWidth 80
#define kSideHeight 80

#define kCornerRadius 5

#define kLoadingTime 5

#define kTips "数据努力加载中"

#define kTipsTimeInterval 0.5

typedef void (^failedBlock)(void);


typedef NS_ENUM(NSInteger, MHPopViewType) {
    MHPopViewTypeFullScreen,
    MHPopViewTypeWrapContent,
    MHPopViewTypeFullScreenWithTips,
    MHPopViewTypeWrapContentWithTips,
    MHPopViewTypeTips,
};


@interface MHProgress : UIView
- (instancetype)initWithType:(MHPopViewType)type;

- (instancetype)initWithType:(MHPopViewType)type failedBlock:failedBlock;
- (void)showLoadingView;
- (void)closeLoadingView;
- (void)showTips:(NSString *)tips intInterval:(CGFloat)timeInterval;

@end

MHPopViewType:



还有两种就是只显示菊花, 没有提示的文字.

提供的接口也很简单, 初始化的时候带上定义好的type就OK, 然后就是对应的显示方法, 不用解释, 字面意思就够了. 

需要注意的一点是, 有个init方法会有传入一个空得Block, 这个Block中的代码块是在规定显示时间(kLoadingTime)显示完之后执行的. 举个栗子吧:

在进行网络请求数据之前, 为了阻止用户对UI的操作, 定义一个MHProgress, 然后把它show出来. 当网络数据请求过来的时候, 就可以close掉它. 但这只是理想情况, 当网络状况不是很好地时候, 这个时候就不能让它一直show着, 一般采取的做法是, 给它了固定的显示时间(kLoadingTime), 超出这个时间就可以假定网络请求"失败"了. 这时, 对"失败"情况的处理就各取所需了, 可以AlertView一下, 也可以showtips一下. 这些处理就可以在Block中进行.

目前封装的还有些问题, 比如在实例化一个实例之后, 先对它进行showLoading操作, 再进行showTips操作, 这个时候显示就会有问题. 因为是同一个实例, 在实现的时候会对全局变量有更改, 所以只能定义两个实例, 对这两个操作分开进行. 这点读者也可以进行改善.

源码下载

版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS - 网络数据加载等待页面的简单实现

iOS系统提供的加载等待控件UIActivityIndicatorView(传说中的菊花), 有时候难免有点单调生涩. 故在此简单封装了一下: #import #define kSideWidt...
  • Macro_13
  • Macro_13
  • 2015年11月17日 23:37
  • 3350

iOS 自定义加载等待动画

一般来说,我们的项目中请求网络数据是一个比较耗时的操作,在请求的过程中如果给用户只展示空白的页面或者默认的页面,难免显得有些单调,这个时候我们可以添加一个指示动画,开始请求的时候运行动画,数据请求下来...
  • wbxiaowangzi
  • wbxiaowangzi
  • 2015年11月02日 14:08
  • 3308

ios开发之简单实现loading动画效果

最近有朋友we'w
  • shenjie12345678
  • shenjie12345678
  • 2014年10月14日 22:18
  • 24164

Android自定义网络数据加载等待框的简单封装

先上效果图(在5.0以上机型显示效果,如果是4.0会变为灰色): 自定义ProgressBar如下:public class LoadingCustom extends ProgressDialog...
  • sinat_35670989
  • sinat_35670989
  • 2017年01月07日 11:24
  • 2583

简单jQuery加载等待转圈页面插件

  • 2016年11月08日 17:48
  • 3KB
  • 下载

dwr 实现页面数据加载等待状态

问题:用dwr技术查询海量数据时,用户点击按钮,提交请求后,页面长时间没反应.问题反映到我这.当然除了要提高性能外,也得给用户一个提示,比如出现"正在加载数据.."的提示.解决办法:如果要实现这种效果...
  • chumeng411
  • chumeng411
  • 2011年06月14日 11:13
  • 741

js实现的简单的Html页面加载滚动条

  • 2010年05月13日 23:30
  • 1KB
  • 下载

仿知乎日报第十一篇:从网络为12个页面加载数据,并设置数据

一.我们前面讲了一下,12个页面的只要获得相应的id,就能和http://news-at.zhihu.com/api/4/theme/组合起来获得相应的主题日报的数据,例如日常心理学的id是13,它的...
  • baoyunmian
  • baoyunmian
  • 2016年09月19日 16:59
  • 348

[IOS]UIWebView 请求网络页面或者加载本地资源页面

UIWebView是一个能够显示网页的IOS视图控件,我们可以用它来访问一个网站。下面是具体的实例: 操作步骤: 1.首先在xib文件中拖放一个UIWebView控件到view中 2.将下载的页面以及...
  • s10141303
  • s10141303
  • 2013年08月27日 13:17
  • 3763

iOS中 UIWebView加载网络数据 技术分享

UIWebView主要有下面几个委托方法: 1、- (void)webViewDidStartLoad:(UIWebView *)webView;开始加载的时候执行该方法。 2、- (void)web...
  • qq_31810357
  • qq_31810357
  • 2015年10月31日 22:14
  • 4387
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS - 网络数据加载等待页面的简单实现
举报原因:
原因补充:

(最多只允许输入30个字)