白羽
2018-06-07
来源 :网络
阅读 1725
评论 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频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号