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

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

你同意吗?

苹果估计想取代第三方的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里面)

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

转载于:https://www.cnblogs.com/zsw-1993/p/4879635.html

IOS6 新特性之UIRefreshControl相关推荐

  1. 移动开发新指南:iOS6新特性…

    很不错的总结 原文地址:移动开发新指南:iOS6新特性完全解析作者:xakzhong WWDC的英文全称是"Worldwide Developers Conference",即为苹 ...

  2. xcode 4.5 new feature __ ios6 新特性

    上两周看了wwdc 2012 developer session 400 - 412的视频,以下总结一下xcode4.5的新特性.(部分參考onevcat的文章,在此感谢.) @synthesize ...

  3. xcode 4.5 new feature __ ios6 新特性 (转)

    上两周看了wwdc 2012 developer session 400 - 412的视频,下面总结一下xcode4.5的新特性.(部分参考onevcat的文章,在此感谢.) @synthesize ...

  4. iOS 6 7 8 9新特性

    iOS6.7.8.9新特性总汇和适配说明 时间:2015-11-13 10:13:37      阅读:304      评论:0      收藏:0      [点我收藏+] 标签: 转自:http ...

  5. iOS6、7、8、9新特性汇总和适配说明

    一.关于内存警告ios6中废除了viewDidUnload,viewWillUnload这两个系统回调,收到内存警告时在didReceiveMemoryWarning中进行相关的处理. 二.关于屏幕旋 ...

  6. iOS6、7、8、9区别和新特性

    一.关于内存警告 ios6中废除了viewDidUnload,viewWillUnload这两个系统回调,收到内存警告时在didReceiveMemoryWarning中进行相关的处理. 1 2 3 ...

  7. iOS6,7,8,9新特性汇总

    iOS 7对比iOS 6来说几点它的显著UI风格变化: 目前整个设计的趋势是让UI少一些修饰,之前的苹果推崇拟物化设计,让用户一目了然那个东西是干什么的.此次iOS 7的设计却让整个调调发生了变化,总 ...

  8. 关于ios6的一些新特性

    WWDC的英文全称是"Worldwide Developers Conference",即为苹果全球开发者大会.每年定期由苹果公司(Apple Inc.)举办,大会在美国加州举行. ...

  9. WWDC 2013 Session笔记 - Xcode5和ObjC新特性

    这是我的WWDC2013系列笔记中的一篇,完整的笔记列表请参看这篇总览.本文仅作为个人记录使用,也欢迎在许可协议范围内转载或使用,但是还烦请保留原文链接,谢谢您的理解合作.如果您觉得本站对您能有帮助, ...

最新文章

  1. Kafka High Availability (下)
  2. 精确微妙计时minicom 源码节选
  3. numpy insert
  4. C五:exit()函数作用的程序
  5. 删除 jar 的 asset_【unity游戏开发】SDK学习(1)-C#与jar交互
  6. 深度神经网络实践:车牌识别
  7. 解决'pip' 不是内部或外部命令,也不是可运行的程序或批处理文件的问题
  8. SAP Commerce配置属性的优先级
  9. 基本数据类型与String之间的转换
  10. 30分钟时长千行代码《C#程序设计基础》经典程序,C#菜鸟开发必备!
  11. Android之提示can‘t execute: Permission denied解决办法
  12. Ubuntu 10.10安装Vmware Tools
  13. 微信的服务器是联想的吗,吕再峰:联想希望借微信建设一个新的服务通路
  14. python基础入门第0天
  15. 疫情趋势下,远程控制软件成为刚需,ToDesk or 向日葵,哪一款最好用?
  16. 逆发动机模型_simulink
  17. delphi 安装控件时提示系统找不到指定的模块的解决
  18. 你可以更幸福(转载)
  19. Oracle SQL开发考试试题
  20. 测试工程师的一点自省感悟

热门文章

  1. 前端学习(3202):函数式组件
  2. 前端学习(3170):react-hello-react之实现底部功能
  3. 前端学习(2933):vue中的循环语句
  4. [html] 说说你对HTML5中pattern属性的理解
  5. [html] webSocket怎么做兼容处理?
  6. [css] 使用rem布局时怎样合理设置根标签字体大小?
  7. [css] ::first-letter有什么应用场景?
  8. 前端学习(2486):$emit
  9. 工作47:继续理解父子组件
  10. 工作37:账号绑定逻辑复杂