IOS开发之UIActivityIndicatorView是什么
白羽 2018-06-07 来源 :网络 阅读 1123 评论 0

摘要:本文将带你了解IOS开发之UIActivityIndicatorView、UIProgressView,UIActivityIndicatorView和UIProgressView都继承自UIView,所以他们可以附属在其他视图上。UIActivityIndicatorView是一个进度提示器,显示一个小圆圈在转动,主要用在一些耗时操作的提示上,比如网络请求;UIProgressView是一个进度提示条,不过它可以显示一个进度,可以告知用户操作已经进行了多少,这二者的目的都是为了在应用程序有耗时操作时在UI上进行显示,提高用户体验。希望本文对大家学IOS有所帮助。


UIActivityIndicatorView和UIProgressView都继承自UIView,所以他们可以附属在其他视图上。UIActivityIndicatorView是一个进度提示器,显示一个小圆圈在转动,主要用在一些耗时操作的提示上,比如网络请求;UIProgressView是一个进度提示条,不过它可以显示一个进度,可以告知用户操作已经进行了多少,这二者的目的都是为了在应用程序有耗时操作时在UI上进行显示,提高用户体验。

下面分别来创建这个两个控件:

首先在ViewController.h中声明代码:

[cpp] view plain copy
1. #import <UIKit/UIKit.h>  
2.   
3. @interface ViewController : UIViewController  
4.   
5. @property(retain,nonatomic) UIActivityIndicatorView *activityIndicator;  
6. @property(retain,nonatomic) UIProgressView *progressView;  
7.   
8. - (IBAction)startIndicator:(id)sender;  
9. - (IBAction)startProgress:(id)sender;  
10. - (IBAction)startNetWork:(id)sender;  
11.   
12. @end  
然后修改ViewController.m文件,具体的解释都在注释里面
[cpp] view plain copy
1. #import "ViewController.h"  
2.   
3. @interfaceViewController ()  
4.   
5. @end  
6.   
7. @implementation ViewController  
8. @synthesize activityIndicator = _activityIndicator;  
9. @synthesize progressView = _progressView;  
10.   
11. - (void)viewDidLoad  
12. {  
13.     [superviewDidLoad];  
14.           
15. }  
16.   
17. - (IBAction)startIndicator:(id)sender {  
18.     //初始化指示器  
19.     self.activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(140, 200, 30, 30)];  
20.       
21.     /* 
22.      指定指示器的类型 
23.      一共有三种类型: 
24.      UIActivityIndicatorViewStyleWhiteLarge   //大型白色指示器    
25.      UIActivityIndicatorViewStyleWhite      //标准尺寸白色指示器    
26.      UIActivityIndicatorViewStyleGray    //灰色指示器,用于白色背景  
27.      */  
28.     self.activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhite;  
29.       
30.     //停止后是否隐藏(默认为YES)  
31.     self.activityIndicator.hidesWhenStopped = YES;  
32.       
33.     //将Indicator添加到视图中  
34.     [self.viewaddSubview:self.activityIndicator];  
35.       
36.     //开始转动  
37.     [self.activityIndicator startAnimating];  
38.       
39.     //操作队列  
40.     NSOperationQueue *operationQueue = [[NSOperationQueue alloc] init];  
41.       
42.     //设置最大的操作数  
43.     [operationQueue setMaxConcurrentOperationCount:1];  
44.   
45.     //构建一个操作对象,selector指定的方法是在另外一个线程中运行的  
46.     NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self   
47.                                                                             selector:@selector(runIndicator) object:nil];  
48.     //将操作加入队列,此时后台线程开始执行  
49.     [operationQueue addOperation:operation];  
50.   
51. }  
52.   
53. - (IBAction)startProgress:(id)sender {  
54.     self.progressView = [[UIProgressView alloc] initWithFrame:CGRectMake(70, 260, 180, 20)];  
55.     /* 
56.      设置风格属性 
57.      有两种风格属性: 
58.      UIProgressViewStyleDefault 
59.      UIProgressViewStyleBar 
60.      */  
61.     self.progressView.progressViewStyle = UIProgressViewStyleDefault;  
62.       
63.     //设置进度,值为0——1.0的浮点数  
64. //    self.progressView.progress = .5;  
65.     [self.viewaddSubview:self.progressView];  
66.       
67.     //设定计时器,每隔1s调用一次runProgress方法  
68.     [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(runProgress)   userInfo:nil repeats:YES];  
69. }  
70.   
71. //在状态栏显示有网络请求的提示器  
72. - (IBAction)startNetWork:(id)sender {  
73.     UIApplication *app = [UIApplication sharedApplication];  
74.     if (app.isNetworkActivityIndicatorVisible) {  
75.         app.networkActivityIndicatorVisible = NO;  
76.     }else {  
77.         app.networkActivityIndicatorVisible = YES;  
78.     }  
79. }  
80.   
81. -(void)runIndicator  
82. {  
83.     //开启线程并睡眠三秒钟  
84.     [NSThread sleepForTimeInterval:3];  
85.     //停止UIActivityIndicatorView  
86.     [self.activityIndicator stopAnimating];  
87. }  
88.   
89. //增加progressView的进度  
90. -(void)runProgress  
91. {  
92.     self.progressView.progress += .1;  
93. }  
94.   
95. - (void)viewDidUnload  
96. {  
97.     [superviewDidUnload];  
98.     // Release any retained subviews of the main view.  
99.     [self.activityIndicator release];  
100.     [self.progressView release];  
101. }  
102.   
103. @end

 

编译运行后效果如下:

 IOS开发之UIActivityIndicatorView是什么

 


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程