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

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

你同意吗?

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

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

IOS6 新特性之UIRefreshControl的更多相关文章

  1. IOS6 新特性之UIActivityViewController详解

    新的IOS6增加了一些新特性.因为应用需要,所以在国庆的几天里.研究了一下IOS6的说明文档,然后大概地总结了一下UIActivityViewController的用法与大家分享. 首先 从实际效果入 ...

  2. xcode 4.5 new feature __ ios6 新特性

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

  3. IOS6新特性之下拉刷新<UIRefreshControl>

    在IOS6未发布之前,几乎都是使用那个UIRefresh在实现下拉刷新,甚至有人还是先了上拉的功能,不得不说牛人很多啊.可能是Apple意识到了这个功能的实用性,在IOS6中增加了下拉刷新,但是上啦还 ...

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

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

  5. ios9和ios10的新特性

    昨天面试了一个做ios开发的公司,其中面试官问我最新的ios系统版本是多少,以及它的特性是什么?由于自己是初学者,所以对这些没有关注过.今天特地搜索了一下关于ios9和ios10的新特性,并整理了一下 ...

  6. Xcode5和ObjC新特性

    Welcome to Xcode 5 这是我的WWDC2013系列笔记中的一篇,完整的笔记列表请参看这篇总览.本文仅作为个人记录使用,也欢迎在许可协议范围内转载或使用,但是还烦请保留原文链接,谢谢您的 ...

  7. xCode8以及iOS10 的新特性

    其他:ios10中 适配问题(1.系统判断方法失效:2.隐私数据的访问问题:3.UIColor 问题4.真彩色的显示5.ATS问题6.UIStatusBar问题7.UITextField8.UserN ...

  8. iOS11新特性之LargeTitle

    UI风格 在iOS 11中,系统APP使用了这种UI风格.这种风格最明显的变化就是使用了iOS 11的新特性--Large Title和新的SearchController. Demo GitHub: ...

  9. ios开发ios9新特性关键字学习:泛型,逆变,协变,__kindof

    一:如何去学习?都去学习什么? 1:学习优秀项目的设计思想,多问几个为什么,为什么要这么设计,这么设计的好处是什么,还能不能在优化 ,如何应用到自己的项目中 2:学习优秀项目的代码风格,代码的封装设计 ...

随机推荐

  1. servlet的xml配置详解

    <?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns ...

  2. 2019 HDU 多校赛第二场 HDU 6598 Harmonious Army 构造最小割模型

    题意: 有n个士兵,你可以选择让它成为战士还是法师. 有m对关系,u和v 如果同时为战士那么你可以获得a的权值 如果同时为法师,你可以获得c的权值, 如果一个为战士一个是法师,你可以获得b的权值 问你 ...

  3. 笔记:简单的面向对象-web服务器

    import socket import re import multiprocessing import time import mini_frame class WSGIServer(object ...

  4. java四种引用与回调函数

    JAVA四种引用 java对象的引用包括: 强引用 软引用 弱引用 虚引用 Java中提供这四种引用类型主要有两个目的: 第一是可以让程序员通过代码的方式决定某些对象的生命周期: 第二是有利于JVM进 ...

  5. 【学术篇】luogu1351 [NOIP2014提高组] 联合权值

    一道提高组的题..... 传送门:题目在这里.... 现在都懒得更自己的blog了,怕是太颓废了_ (:з」∠) _ 好久没做题了,手都生了.(好吧其实是做题方面手太生了) 这题我都不想讲了,把代码一 ...

  6. JAVA数据结构之哈希表

    Hash表简介: Hash表是基于数组的,优点是提供快速的插入和查找的操作,编程实现相对容易,缺点是一旦创建就不好扩展,当hash表被基本填满的时候,性能下降非常严重(发生聚集引起的性能的下降),而且 ...

  7. 9.spark Core 进阶2--Cashe

          RDD Persistence One of the most important capabilities in Spark is persisting (or caching) a d ...

  8. pipenv的使用

    首先,确保pip install pipenv已经安装 1.新建一个文件夹,并在地址栏输入cmd,回车. 2.输入pipenv install,等待虚拟环境搭建完毕. 3.输入pipenv shell ...

  9. leetcood学习笔记-2-两数相加

    题目描述: 方法一: # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.va ...

  10. [JZOJ3348] 【NOI2013模拟】秘密任务

    题目 题目大意 给你一个无向图,你要割掉一些边使得\(1\)到\(n\)的所有最短路径被阻截. 割掉一个边\((u,v)\)的代价为\(a_u\)或\(a_v\)(记为两种不同的方案). 问最小代价及 ...