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 }

 
  

时间: 2024-10-10 11:03:57

UIRefreshControl Class Reference的相关文章

iOS UIKit 框架 346 篇文档分类整理 - 预告

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 当前正在进行的是 "iOS Foundation 框架 224 篇相关文档分类整理",量很大,但会根据实际开发中的使用频繁程序

新浪微博客户端(18)-集成下拉刷新控件UIRefreshControl

HomeViewController.m - (void)setupPullToRefreshView { UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init]; [refreshControl addTarget:self action:@selector(refreshNewData:) forControlEvents:UIControlEventValueChanged]; [self.tableView a

Android中JNI调用时出现accessed stale local reference的问题

之前在做一个native的模块时遇到这样一个问题: 代码运行在android2.3上没有任何问题,可是在4.2上运行时报出了:JNI ERROR (app bug): accessed stale local reference 的错误. 后来在StackOverflow上找到了问题的答案.简单来说就是  4.0以上的android系统GC在垃圾回收时为了减少内存碎片,会对内存进行整理,整理时必然会移动对象的内存地址,这时C代码的指针还指向原来对象的地址,这时该对象已经被移动到了其他位置,因此会

ECShop后台站点地图关于 Deprecated: Assigning the return value of new by reference is deprecated的错误的解决办法

今天对后台系统进行一些简单的操作,当点击  系统设置---站点地图  时发现提示: Deprecated: Assigning the return value of new by reference is deprecated 的错误,如下图: 起先以为是代码的问题,可是一想到这个模板是官网的默认模板,对sitemap.php文件进行查找后未能发现问题.后来将错误内容从网上一查找,原来是由于从php5.3开始后,废除了php中的"=&"符号,所以删除&符号即可. 删除

caffe日常坑系列之:undefined reference to symbol '_ZN2cv6String10deallocateEv'

在使用caffe库编译C++时出现的 解决如下: /usr/bin/ld: /tmp/ccA5JGRP.o: undefined reference to symbol '_ZN2cv6String10deallocateEv'//usr/local/lib/libopencv_core.so.3.2: error adding symbols: DSO missing from command line解决:sudo apt-get autoremove libopencv-dev caffe

在codeblocks 下,C++编译不成功一直出现“undefined reference to `std::cout'|

自己搞了好久才知道,编辑c++,要用g++ 希望对大家有帮助 在codeblocks 下,C++编译不成功一直出现"undefined reference to `std::cout'|

Linux下运行《UNIX环境高级编程》undefined reference to `err_quit 编译出错的处理方法

错误信息: : undefined reference to `err_quit': undefined reference to `err_sys' 解决方法: 因为err_quit跟err_sys是作者自己定义的错误处理函数.所以最简单的解决办法是修改下apue.h文件,如下 /* * Our own header, to be included before all standard system headers. */ #ifndef _APUE_H #define _APUE_H #d

lua-5.2.3编译问题记录"libreadline.so: undefined reference to `PC'"

作者:zhanhailiang 日期:2014-10-21 [root@~/software]# cd lua-5.2.3 [root@~/software/lua-5.2.3]# make linux cd src && make linux make[1]: Entering directory `/root/software/lua-5.2.3/src' make all SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,

Unity报错 : BCE0004: Ambiguous reference 'preview': CameraMotionBlurEditor.preview, UnityEditor.Editor.preview.

建立项目版本为Unity4.6,改为5.3.4版本,运行项目报如下错误: "BCE0004: Ambiguous reference 'preview': CameraMotionBlurEditor.preview, UnityEditor.Editor.preview." 修改  preview 为 preview_ var preview_ : SerializedProperty; preview_ = serObj.FindProperty ("preview&qu