zoukankan      html  css  js  c++  java
  • ios之UIActivityIndicatorView

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

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

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

     

    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文件,具体的解释都在注释里面

    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  

    编译运行后效果如下:

  • 相关阅读:
    log4net保存到数据库系列三、代码中xml配置log4net
    log4net保存到数据库系列二:独立配置文件中配置log4net
    log4net保存到数据库系列一:WebConfig中配置log4net
    SSIS SQLServer增量抽取至Cassandra 性能优化及踩坑
    从SVN资源库下载项目
    右键tomcat找不到项目:There are no resources that can be added or removed from the server.
    MVC模式:action、dao、model、service、util
    隐藏按钮button
    Navicat for mysql导入.sql数据库大小受限制
    MySQL数据库错误号:2003
  • 原文地址:https://www.cnblogs.com/yulang314/p/3550413.html
Copyright © 2011-2022 走看看