动态风火轮视图控件:UIActivityIndicatorView
介绍:它是一种类似于风火轮旋转的视图控件,可用作刷新数据时显示加载过程所用,继承自UIView。
类型:
typedef NS_ENUM(NSInteger, UIActivityIndicatorViewStyle) {
UIActivityIndicatorViewStyleWhiteLarge, //大的白色类型
UIActivityIndicatorViewStyleWhite, //白色类型
UIActivityIndicatorViewStyleGray, //灰色类型
};
属性:
@property(nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; //类型
@property(nonatomic) BOOL hidesWhenStopped; //当停止时是否隐藏
@property (readwrite, nonatomic, retain) UIColor *color ; //颜色
方法:
- (instancetype)initWithActivityIndicatorStyle:(UIActivityIndicatorViewStyle)style; //创建实例的初始化方法
- (void)startAnimating; //开始动画
- (void)stopAnimating; //停止动画
- (BOOL)isAnimating; //是否正在动画
@end
实例如下:在方法- (void)viewDidLoad { [super viewDidLoad];....}中添加代码如下
//创建活动视图控件实例
1 UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
//设置该实例的位置
1 activityView.center = CGPointMake(170, 200);
//设置控制器视图背景颜色
1 [self.view setBackgroundColor:[UIColor redColor]];
//添加该控件到视图中
1 [self.view addSubview:activityView];
//开始动画
1 [activityView startAnimating];
//设置动画停止时是否隐藏
1 activityView.hidesWhenStopped = YES;
//使用定时器,规定3秒时动画停止
1 [NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(test:) userInfo:activityView repeats:NO];
//开始应用程序的网络活动刷新动画
1 UIApplication *app = [UIApplication sharedApplication]; 2 [app setNetworkActivityIndicatorVisible:YES];
#pragma mark -test定时器事件
-(void)test:(NSTimer*)sender { //取出该控件实例 UIActivityIndicatorView *activityView = [sender userInfo]; //停止动画 [activityView stopAnimating]; //停止应用程序的网络活动刷新动画 UIApplication *app = [UIApplication sharedApplication]; [app setNetworkActivityIndicatorVisible:NO]; }
演示结果:
两个风火轮都开始动画:网络旁边一个,视图中一个 两个风火轮都在定时器的时间点同时停止动画: