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

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

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

  1. #import <UIKit/UIKit.h>
  2. @interface ViewController : UIViewController
  3. @property(retain,nonatomic) UIActivityIndicatorView *activityIndicator;
  4. @property(retain,nonatomic) UIProgressView *progressView;
  5. - (IBAction)startIndicator:(id)sender;
  6. - (IBAction)startProgress:(id)sender;
  7. - (IBAction)startNetWork:(id)sender;
  8. @end

然后修改ViewController.m文件,具体的解释都在注释里面

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

编译运行后效果如下:

ios之UIActivityIndicatorView的更多相关文章

  1. iOS开发-UIActivityIndicatorView简单使用

    软件开发的时候经常会遇到半天才加载出来数据的情况,不管是程序写的烂,还是说本来网速比较慢,一般都都会给个提示让用户感觉到我们在努力的加载数据,iOS可以通过UIActivityIndicatorVie ...

  2. iOS - UI - UIActivityIndicatorView

    1.UIActivityIndicatorView HUD 指示器 UIActivityIndicatorView * indicatorView = [[UIActivityIndicatorVie ...

  3. [New learn] UIKit 框架类

    NSObject NSObject is the root class of most Objective-C class hierarchies. NSDataAsset The NSDataAss ...

  4. iOS UIActivityIndicatorView 的使用

    UIActivityIndicatorView 非常简单 ,就是一个转圈圈的控件:http://blog.csdn.net/zhaopenghhhhhh/article/details/1209265 ...

  5. iOS UIActivityIndicatorView

    UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle ...

  6. IOS开发UI基础UIActivityIndicatorView的属性

    UIActivityIndicatorView 1.activityIndicatorViewStyle设置指示器的样式UIActivityIndicatorViewStyleWhiteLarge U ...

  7. iOS开发——UI篇Swift篇&UIActivityIndicatorView

    UIActivityIndicatorView override func viewDidLoad() { super.viewDidLoad() titleLabel.text = titleStr ...

  8. IOS UIActivityIndicatorView 等待指示器

    自己做的一个 等待指示器 #import <UIKit/UIKit.h> @interface RockIndicatorView : UIView { } @property(nonat ...

  9. 转 UIActivityIndicatorView、UIProgressView 活动与进度指示器-IOS开发

    活动指示器(UIActivityIndicatorView)可以告知用户有一个操作正在进行中.进度指示器(UIProgressView )也具有同样功能,而且还可以告知用户离操作结束还多远. 这两个指 ...

随机推荐

  1. jzoj5987. 【WC2019模拟2019.1.4】仙人掌毒题 (树链剖分+概率期望+容斥)

    题面 题解 又一道全场切的题目我连题目都没看懂--细节真多-- 先考虑怎么维护仙人掌.在线可以用LCT,或者像我代码里先离线,并按时间求出一棵最小生成树(或者一个森林),然后树链剖分.如果一条边不是生 ...

  2. IT兄弟连 JavaWeb教程 EL与JSTL表达式经典案例

    案例需求:使用MVC模式编写一个程序,当发起一个deptList.do请求时,在servlet中准备一个部门列表对象,把这个列表对象放入request作用域中转发到deptlist.jsp,使用JST ...

  3. IT兄弟连 JavaWeb教程 JSP经典案例

    案例需求:定义一个javaBean叫XdlUser,有四个字段int id.String name.int age.double salary.写一个jsp页面,在页面中构建一个列表对象,里面存放几个 ...

  4. dumpe2fs: Bad magic number in super-block

    今天使用tune2fs和dumpe2fs来查看文件系统信息,出现如下图所示错误提示: 解决方法: 1.原来tune2fs和dumpe2fs只能打开ext3/ext4等文件类型. dumpe2fs - ...

  5. SecureCRT 退格键等不好用

    1.MongoDB Shell中退格键使用的问题. 利用SecureCRT工具访问linux的时候,在使用MongoDB的交互式shell的时候,退格键(Backspace)无法使用,导致无法修改输入 ...

  6. PAT甲级——1118 Birds in Forest (并查集)

    此文章 同步发布在CSDN:https://blog.csdn.net/weixin_44385565/article/details/89819984   1118 Birds in Forest  ...

  7. 在开发中经常会有多级跳转 viewcontroller的问题,然后有时不一定要一级一级的返回,可能直接返回到某个根视图控制器或某个指定的控制器.

    其中采用navigationController pushViewController 的方法,比如我从主页面跳转到了4级页面,又从4级页面跳转到了2级页面,然后从2级页面跳转到了4级页面然后在重4级 ...

  8. [HDU1595] find the longest of the shortest

    题目链接: 点我 题意: 给定一个\(n\)个点,\(m\)条边的带权无向图,起点为\(1\),终点为\(n\),现在可以删去其中的一条边,求一种删边方案使得剩下图的最短路值最大,输出这个最短路的长度 ...

  9. Python常用模块之hashlib(加密)

    Python常用模块之hashlib(加密) Python里面的hashlib模块提供了很多加密的算法,这里介绍一下hashlib的简单使用事例,用hashlib的md5算法加密数据import ha ...

  10. python之模块random,time,os,sys,序列化模块(json,pickle),collection

    引入:什么是模块:   一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类型. 1.使用python编写的代码(.py ...