软件开发的时候经常会遇到半天才加载出来数据的情况,不管是程序写的烂,还是说本来网速比较慢,一般都都会给个提示让用户感觉到我们在努力的加载数据,iOS可以通过UIActivityIndicatorView实现类似的效果。UIActivityIndicatorView 提供轻型视图,会显示一个标准的旋转进度轮,只要添加到程序中,在合适的地方start和stop即可。start的时候可以吸附在当前视图中,stop的时候就会移除~
简答的效果:
实现方式如下:
self.activityIndicatorView=[[UIActivityIndicatorView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)]; self.activityIndicatorView.center=self.view.center; [self.activityIndicatorView setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray]; [self.activityIndicatorView setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhiteLarge]; [self.activityIndicatorView setBackgroundColor:[UIColor lightGrayColor]]; [self.view addSubview:self.activityIndicatorView]; [self.activityIndicatorView startAnimating];
代码很简单,设置frame这个不用讲,关于style的设置,有三种白色和灰色,这两种的尺寸都是20*20,白色大图是37*37:
typedef NS_ENUM(NSInteger, UIActivityIndicatorViewStyle) { UIActivityIndicatorViewStyleWhiteLarge, UIActivityIndicatorViewStyleWhite, UIActivityIndicatorViewStyleGray, };
关闭动画:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5* NSEC_PER_SEC)), dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),^{ [self.activityIndicatorView stopAnimating]; });
对于UIActivityIndicatorView的使用,我们一般会创建一个背景View,设置一定的透明度,然后将UIActivityIndicatorView贴在背景View上,在我们需要的时候将这个view呼出。
初始化UIActivityIndicatorView
- (instancetype)initWithActivityIndicatorStyle:(UIActivityIndicatorViewStyle)style;
这个风格是一个枚举,如下
typedef NS_ENUM(NSInteger, UIActivityIndicatorViewStyle) {
//大号白色
UIActivityIndicatorViewStyleWhiteLarge,
//白色
UIActivityIndicatorViewStyleWhite,
//灰色
UIActivityIndicatorViewStyleGray,
};
初始化之后,还需要给它一个Frame,但是只有前两个位置参数有效,大小参数将没有任何影响。
设置指示器风格:
@property(nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle;
设置指示器是否停止动画时隐藏
@property(nonatomic) BOOL hidesWhenStopped;
设置指示器颜色
@property (readwrite, nonatomic, retain) UIColor *color;
让指示器开始动画
- (void)startAnimating;
让指示器停止动画
- (void)stopAnimating;
获取指示器动画状态
- (BOOL)isAnimating;
学习使用 欢迎转载
来源:oschina
链接:https://my.oschina.net/u/2361492/blog/688883