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显示出来。

  • 相关阅读:
    Linux 文件的软连接和硬连接
    URLOS发布NFS文件加速功能,可有效提升NFS小文件读取性能
    Vue底层学习3——手撸发布订阅模式
    Vue底层学习2——手撸数据响应化
    Vue底层学习1——原理解析
    rest api测试工具frisbyjs
    git ignore 微软临时文件(~$xxx.xlsx)
    数据虚拟化-基础概念
    elasticsearch移除映射类型(mapping type)
    activemq Virtual Destinations 虚拟目的地
  • 原文地址:https://www.cnblogs.com/yaoxc/p/3719169.html
Copyright © 2011-2022 走看看