摘要:本文将带你了解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频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号