zoukankan      html  css  js  c++  java
  • 等待指示器(1) -- UIActivityIndicatorView控件

    iOS提供两种等待指示器:等待指示器控件(UIActivityIndicatorView)和网络等待指示器。

    下面介绍UIActivityIndicatorView的使用:

    1、使用目的:APP请求网络资源,请求的数据需要一段时间才能返回,为了给用户更好的体验,使用等待指示器。

    2、使用方式方法:

    从技术角度说:作为控件,等待指示器可以放置于视图中。

    从设计规范讲:等待指示器应该放置于工具栏、导航栏以及弹出的对话框中,请求结束应该消失

    下面将等待指示器放置在导航栏上:

    - (void)showActivityIndicatorViewInNavigationItem

    {

      UIActivityIndicatorView *aiview = [[UIActivityIndicatorView  alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];  【1】

      self.navigationItem.titleView = aiview ;                      【2】

      [aiview  startAnimating];                                          【3】

      self.navigationItem.prompt = @"数据加载中....";          【4】

    }

    - (void)viewDidLoad

    {

      ....

      //  查询请求数据

      action = ACTION_QUERY;

      [self startRequest];

      // 请求发出后,指示器开始旋转

      [self showActivityIndicatorViewInNavigationItem];

      // 初始化UIRefreshControl

      UIRefreshControl *rc = [[UIRefreshControl  alloc] init ];

      rc.attributedTitle = [[NSAttributedString alloc] initWithString:@"下拉刷新..."] ; 

      [rc addTarget:self  action:@selector(refreshTableView)

                forControlEvents:UIControlEventValueChanged ];

      self.refreshControl = rc ;

    }

    - (void)reloadView:(NSDictionary *)resDict

    {

      [self.refreshControl endRefreshing];                                                                                             

      self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"下拉刷新..."] ;

      // 请求完成,停止等待指示器,恢复导航栏

      self.navigationItem.titleView = nil;                    【5】

      self.navigation.prompt= nil;                                      

      ........

    }

    【1】:设置等待指示器的样式

    【2】:设置titleView属性,就不能显示title属性了(注:title属性和titleView属性的位置是重合的)

    【3】:开始动画,指示器旋转

    【4】:prompt属性常用于提示用户

    【5】:清除titleView属性,显示title属性

    【注:】等待指示器常用方法:

    - startAnimating:开始旋转动画

    - stopAnimating:停止动画,停止旋转

    - isAnimating:判断是否在旋转

    hidesWhenStopped属性:Bool值,设置等待控制器停止旋转时隐藏,这个属性很重要。

    说明:停止等待指示器本来应该调用stopAnimating方法,而放在导航栏项目中的等待指示器控件有所不同,更重要的是移除这个控件,让原来的title显示出来。

  • 相关阅读:
    使用javamail发信过程中的一些问题及解决方法
    互联网标准
    发送邮件报错javax.activation.UnsupportedDataTypeException: no object DCH for MIME type text/plain; charset=UTF-8
    在用split分割处理csv数据时,使用不包含在双引号中的逗号进行分割
    java 网络代理官方资料
    ORA-28000错误的原因及解决办法
    日文软件下载站点
    Azure 入门
    ElasticSearch 5学习(10)——结构化查询(包括新特性)
    ElasticSearch 5学习(9)——映射和分析(string类型废弃)
  • 原文地址:https://www.cnblogs.com/yaoxc/p/3719169.html
Copyright © 2011-2022 走看看