• 等待指示器(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显示出来。

  • 相关阅读:
    iOS9 News 应用
    swift中,Optional、?与!之间的关系
    [翻译] CotEditor
    [book] iOS 8 Swift Programming Cookbook
    便利的操作plist文件
    消除 Xcode7 中 directory not found for option 'xxxx' 警告
    点击单个cell高度变化的动画效果
    [翻译] LiquidFloatingActionButton
    一脸懵逼学习Zookeeper(动物园管理员)---》高度可靠的分布式协调服务
    一脸懵逼学习基于CentOs的Hadoop集群安装与配置(三台机器跑集群)
  • 原文地址:https://www.cnblogs.com/yaoxc/p/3719169.html
Copyright © 2020-2023  润新知