“不会模仿的公司不是好公司不会剽窃的公司不是优秀公司 

不会调戏代码的不是骨灰级码工

你同意吗?

苹果估计想取代第三方的pull to refresh”        --------------以上摘自DevDiv社区

源代码参考了DevDiv社区的代码 地址:http://www.devdiv.com/iOS_iPhone-iOS6%E6%96%B0%E7%89%B9%E5%BE%81%EF%BC%9AUIRefreshControl_%E4%B8%8B%E6%8B%89%E5%88%B7%E6%96%B0_%E4%BD%BF%E7%94%A8%E7%A4%BA%E4%BE%8B-thread-127741-1-1.html

如上述摘文最后一句所言,在苹果IOS6的新特性中有一个叫做UIRefreshControl的控件,顾名思义,它的用途正是 pull to refresh。

在进入到代码层面上的解释前,需要先说一点:在IOS6中 只有UITableViewController能够使用UIRefreshControl控件,其他的viewController如果使用了,会报错。

要使用UIRefreshControl需要有3个步骤   一、初始化以及配置   二、与UItableViewController以及相应动作的关联  三、为UIRefreshControl控件添加动作

首先 先看初始化:(这里的self是UITableViewController 即以下代码是写在一个UITableViewController.m中的)

self.refreshControl = [[UIRefreshControl alloc] init];//把refreshControl写成了UITableViewController的属性

self.refreshControl.tintColor = [UIColor blueColor];//将控件颜色设为蓝色

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

//与UIRefreshControl控件对应的文字文字当然是可以更改的从而可以显示  刷新中下拉刷新等提示语

以上 代码便是UIRefreshControl的初始化以及两个属性的配置

涉及到 1个初始化方法init 和两个属性tintColor(控件颜色) attributedTitle(匹配的文字)

这里attributedTitle要注意其类型是NSAttributedString

这类字符串的特性是可以分为好几段 然后编辑成不同的字体类型(包括不同颜色)

注意:在UITableViewController的viewdidload方法中 添加这些代码

接下来是第二个步骤 与UItableViewController以及相应动作的关联:

在初始化完成之后 加上该语句:[self.refreshControl addTarget:self

action:@selector(RefreshViewControlEventValueChanged)

forControlEvents:UIControlEventValueChanged];

addTarget:self  即完成了与UITableViewController的管理 (self即是UITableVIewController)

action:@selector(RefreshViewControlEventValueChanged)    即完成了与相应动作的关联 (虽然动作还没写)

最后的步骤便是添加相应动作:

见代码:

-(void)RefreshViewControlEventValueChanged

{

if (self.refreshControl.refreshing) {

NSLog(@"refreshing");

self.refreshControl.attributedTitle = [[NSAttributedStringalloc]initWithString:@"刷新中"];

[self performSelector:@selector(handleData) withObject:nil afterDelay:0.3];

}

}

这里涉及到了UIRefreshControl控件的最后一个属性 refreshing  该属性为真 意味着执行了下拉操作 即你拉的够用力- -有效果。

之后 便可以实现你需要的效果 这里时为UITableView增加一行

PS:在以上的代码中 漏掉了2个实例方法

beginRefreshing 和 endRefreshing 一个开始刷新 一个结束刷新(这个代码中实际上用到了 在handleData里面)

最后 想下载源代码的同学 可以访问文章开头的地址 然后回复下载

最新文章

  1. 初探React,将我们的View标签化
  2. Ubuntu14.10搭建C++开发环境
  3. 如何在java程序中调用linux命令或者shell脚本
  4. iOS获取通讯录 电话号码与姓名
  5. CocoStudio基础教程(2)关联程序逻辑与cocoStudio导出文件
  6. 如何从本地把项目上传到github
  7. hadoop源码阅读
  8. Struts2笔记——第一个实例HelloWorld
  9. Delphi使用FindClass实现动态建立对像(有点像反射)
  10. Python 基础【第六篇】字典
  11. c编程:用户输入一个数值n,打印出出1到n之间的所有质数
  12. 写自己的第二级处理器(3)——Verilog HDL行为语句
  13. java 接口测试,使用excel做数据驱动(二)
  14. Codeforces Round#403 (Div. 1)
  15. 【转】 web前端开发分享-目录
  16. pip install
  17. Ajax级联选择框
  18. Ubuntu 16——安装——ns2.35和nam
  19. [SCOI2005] 互不侵犯
  20. cf自训6

热门文章

  1. 哈理工赛 H-小乐乐学数学 /// 筛法得素数表+树状数组
  2. JavaScript学习总结(七)——ECMAScript6(ES6)
  3. ES5数组扩展
  4. JavaScript - DOM相关
  5. 校园商铺-2Logback配置与使用-3验证配置
  6. SQL Server 添加数据库没有权限等
  7. 计算几何——点线关系(叉积)poj2318
  8. Django项目:堡垒机(Linux服务器主机管理系统)--03--03堡垒机在Linux系统里记录会话日志02/02
  9. MDK 虚拟串口 *** error 30: undefined name of virtual register
  10. 动态调整Log4j日志级别