zoukankan      html  css  js  c++  java
  • UIRefreshControl Class Reference

    UIRefreshControl声明自UIRefreshControl.h,直接继承自UIControl ,适应与iOS6及以后版本

    概述:

      UIRefreshControl对象提供了一个标准的控制,可用于启动的表视图中的内容令人耳目一新。您可以通过相关的表视图控制器对象刷新控制链接到一个表中。表视图控制器处理添加控制表中的视觉外观和管理响应于相应的用户手势控制的显示器的工作。

       注解:由于刷新控制是在tableview中使用的,是由表视图控制器管理专门管理,在不同的情况下使用它会导致不确定的行为

      除了分配刷新控制到表格视图控制器的refreshControl属性,必须配置控制器自身的目标和行动。该控件不直接启动刷新操作。相反,当刷新事件出现的时候会发送UIControlEventValueChanged事件。您必须为这个事件指定一个操作方法,并用它来执行任何所需的操作。

      UITableViewController对象拥有刷新控制的功能,同时也负责制定该控件的边框矩形。因此,你不需要直接在视图层次管理刷新控件的大小和位置。

    开始:

      初始化刷新控制器

        – init  初始化并返回一个标准的刷新控制器

          - (id)init 

        返回一个配置了一个默认高度和宽度的刷新控制器。在分配控制器到的UITableViewController对象中之后,控制的结构会自动的调整以匹配它。

      访问控制属性

        tintColor  刷新控制器的颜色

          @property (nonatomic, retain) UIColor *tintColor
          默认值为nil

        attributedTitle  所展示的控制器的类型名称

          @property (nonatomic, retain) NSAttributedString *attributedTitle
          默认值为nil

    管理刷新状态:

      – beginRefreshing  告诉控制器刷新操作已经开始系统的工作

         - (void)beginRefreshing 

      当外部事件源有计划的触发你table刷新的时候调用此方法。例如,如果你使用的NSTimer对象定期刷新表视图中的内容,你会调用此方法作为你时间处理函数的一部分。此方法将更新刷新控制的状态,以反映在正在进行刷新操作。当刷新操作结束时,一定要调用endRefreshing方法返回控制到默认状态。

      – endRefreshing  告诉控制器刷新操作已经结束

         - (void)endRefreshing 

      在任何刷新操作结束时(无论是程序上的结果或用户手动结束)调用此方法,以便使得刷新控制器恢复到默认状态。如果刷新控制器至少有部分是可见的,则调用此方法还隐藏它。如果动画是激活的,则用正在使用的动画隐藏控制器

      refreshing  一个布尔值,标志刷新操作是否已被触发并正在进行

        @property (nonatomic, readonly, getter=isRefreshing) BOOL refreshing 

    实例代码:
     1 - (void)viewDidLoad
     2 {
     3     [super viewDidLoad];
     4     
     5     myTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 568-64) style:UITableViewStylePlain];
     6     myTableView.delegate = self;
     7     myTableView.dataSource = self;
     8     [self.view addSubview:myTableView];
     9     
    10     dataArray = [[NSMutableArray alloc] initWithObjects:@"火影", @"海贼", @"死神", @"银魂", @"妖尾", nil];
    11     
    12     refreshControl = [[UIRefreshControl alloc] init];
    13     refreshControl.tintColor = [UIColor orangeColor];
    14     [refreshControl addTarget:self action:@selector(refreshView:) forControlEvents:UIControlEventValueChanged];
    15     [refreshControl setAttributedTitle:[[NSAttributedString alloc] initWithString:@"松手更新数据"]];
    16    
    17     [myTableView addSubview:refreshControl];
    18     
    19 }
    20 
    21 - (void)refreshView:(UIRefreshControl *)control
    22 {
    23     [refreshControl beginRefreshing];
    24     timer = [NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(timerAction:) userInfo:nil repeats:NO];
    25 }
    26 
    27 - (void)timerAction:(NSTimer *)ti
    28 {
    29     [refreshControl endRefreshing];
    30 }
    31 
    32 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    33 {
    34     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ID"];
    35     if (cell == nil) {
    36         cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"ID"];
    37     }
    38     cell.textLabel.text = [dataArray objectAtIndex:indexPath.row];
    39     return cell;
    40 }
    41 
    42 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    43 {
    44     return dataArray.count;
    45 }
    
    
    
     
      
    


     



  • 相关阅读:
    NSInvalidArgumentException', reason: '[__NSCFDictionary setObject:forKey:]: attempt to insert nil value (key: WebKitLocalStorageDatabasePathPreferenc
    Mac下Android开发环境的搭建
    Xcode 4.4 的新特性 | LLVM 4.0 的新语法
    UIButton设置 textAlignment 属性的方法
    ipa包中图片进行了Compress之后的主要处理和作用
    苹果开发者证书的申请流程 Apple ID for IDP..
    systemtap perf 火焰图
    pg_blocking pg_monitor (转) postgresql表死锁问题的排查方式 阻塞分析 慢SQL
    知识广度 vs 知识深度
    火焰图入门
  • 原文地址:https://www.cnblogs.com/xiaochaozi/p/3953163.html
Copyright © 2011-2022 走看看