iOS6新特征:UIRefreshControl[下拉刷新]使用示例
2014-05-04 20:44
573 查看
原文出处: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新特征汇总贴链接iOS6新特征:参考资料和示例汇总
小弟不才,今天研究了一下iOS6中的一个新控件UIRefreshControl,下面与大家分享一下。
不会模仿的公司不是好公司不会剽窃的公司不是优秀公司
不会调戏代码的不是骨灰级码工
你同意吗?
苹果估计想取代第三方的pulltorefresh】
下面是效果图,这里是代码示例
DevDiv_UIRefreshControl.zip(144.42
KB,下载次数:1042,售价:1资源分)
下面大致介绍一下UIRefreshControl的使用
1、使用范围
如果你装了xcode_4.5_developer_preview,那么在UITableViewController.h文件中你会看到,UITableViewController里面有如下声明,说明UITableViewController已经内置了UIRefreshControl控件
【注】:UIRefreshControl目前只能用于UITableViewController,如果用在其他ViewController中,运行时会得到如下错误提示:(即UIRefreshControl只能被UITableViewController管理)
2、如何使用
a)初始化
如何在UITableViewController中使用UIRefreshControl呢,在上面给出的代码附件中,你可以很详细的知道,这里介绍一下关键的部分:
如上面看到的代码,虽然UITableViewController已经声明了UIRefreshControl,但是貌似还没有初始化,所以需要我们自己初始化。很神奇,初始化的时候并不需要给它指定frame,UITableViewController会为我们进行管理。遗憾的时目前只看到下拉刷新功能,上拉刷新还没有,估计在最终版里面苹果会考虑加入上拉刷新功能。
我们还可以给UIRefreshControl设置tintColor和attributedTitle。
b)下拉刷新事件监听
当用户进行下拉刷新操作时,UIRefreshControl会触发一个UIControlEventValueChanged事件,通过监听这个事件,我们就可以进行类似数据请求的操作了。如下代码:
c)进行数据请求
在示例中,为了演示数据请求,我简单的做了一个延时处理,2秒钟后,调用handleData
在handleData里面,就表示已经请求到了数据,在此进行UI更新即可。也需要注意的是,我们调用UIRefreshControl的endRefreshing方法,表示刷新结束,让UIRefreshControl更新显示。
3、官方头文件
下面是sdk中UIRefreshControl的声明,想必看了下面的代码,你已经知道如何使用了。
view
source
print?
注:这里是iOS6新特征汇总贴链接
小弟不才,今天研究了一下iOS6中的一个新控件UIRefreshControl,下面与大家分享一下。
不会模仿的公司不是好公司不会剽窃的公司不是优秀公司
不会调戏代码的不是骨灰级码工
你同意吗?
苹果估计想取代第三方的pulltorefresh】
下面是效果图,这里是代码示例
KB,下载次数:1042,售价:1资源分)
下面大致介绍一下UIRefreshControl的使用
1、使用范围
如果你装了xcode_4.5_developer_preview,那么在UITableViewController.h文件中你会看到,UITableViewController里面有如下声明,说明UITableViewController已经内置了UIRefreshControl控件
1 | @property (nonatomic,retain)UIRefreshControl*refreshControlNS_AVAILABLE_IOS(6_0); |
1 | 2012-06-15 14:34:34.908DevDivUIRefreshControl[722:10103]***Terminatingappduetouncaughtexception 'NSInternalInconsistencyException' , reason: 'UIRefreshControl mayonlybemanagedbyaUITableViewController' |
2 | *** First throw call stack: |
3 | (0x186fd72 0x1066e510x186fb4b0x55a5590x572380x5d4820x55ad20x2ebb0xeb2a30xeb30e0x10b7e90x10b6240x109aef0x10999c0x107adc0x1082c60xecf240xed1e00xee0840x5645c0x5cf310x55ad20x4131d0x414f60x4168c0x498710x10a900x1196a0x222be0x22f9f0x153fd0x17ccf39 0x17ccc100x17e5da50x17e5b120x1816b460x1815ed40x1815dab0x1128f0x12e710x29fd0x2925) |
4 | libc++abi.dylib: terminatecalledthrowinganexception |
5 | (lldb) |
a)初始化
如何在UITableViewController中使用UIRefreshControl呢,在上面给出的代码附件中,你可以很详细的知道,这里介绍一下关键的部分:
1 | self.refreshControl =[[UIRefreshControlalloc]init]; |
2 | // self.refreshControl.tintColor=[UIColorblueColor]; |
3 | self.refreshControl.attributedTitle =[[NSAttributedStringalloc]initWithString:@ "下拉刷新" ]; |
4 | [self.refreshControl addTarget:selfaction:@selector(RefreshViewControlEventValueChanged)forControlEvents:UIControlEventValueChanged]; |
我们还可以给UIRefreshControl设置tintColor和attributedTitle。
b)下拉刷新事件监听
当用户进行下拉刷新操作时,UIRefreshControl会触发一个UIControlEventValueChanged事件,通过监听这个事件,我们就可以进行类似数据请求的操作了。如下代码:
1 | [self.refreshControl addTarget:selfaction:@selector(RefreshViewControlEventValueChanged) |
在示例中,为了演示数据请求,我简单的做了一个延时处理,2秒钟后,调用handleData
1 | [self performSelector:@selector(handleData)withObject:nilafterDelay:2]; |
1 | - ( void ) handleData |
2 | { |
3 | NSLog(@ "refreshed" ); |
4 | [self.refreshControl endRefreshing]; |
5 | self.refreshControl.attributedTitle =[[NSAttributedStringalloc]initWithString:@ "下拉刷新" ]; |
6 |
7 | self.count++; |
8 | [self.tableView reloadData]; |
9 | } |
下面是sdk中UIRefreshControl的声明,想必看了下面的代码,你已经知道如何使用了。
view
source
01 | // |
02 | //UIRefreshControl.h |
03 | //UIKit |
04 | // |
05 | //Copyright 2012AppleInc.Allrightsreserved. |
06 | // |
07 |
08 | #import <Foundation/Foundation.h> |
09 | #import <UIKit/UIControl.h> |
10 | #import <UIKit/UIKitDefines.h> |
11 |
12 | NS_CLASS_AVAILABLE_IOS(6_0) @interfaceUIRefreshControl:UIControl |
13 |
14 | /* Thedesignatedinitializer |
15 | * |
16 | * |
17 | * |
18 | */ |
19 | - (id)init; |
20 |
21 | @property BOOL refreshing; |
22 |
23 | @property |
24 | @property |
25 |
26 | // |
27 | - ( void )beginRefreshing NS_AVAILABLE_IOS(6_0); |
28 | // |
29 | - ( void )endRefreshing NS_AVAILABLE_IOS(6_0); |
30 |
31 | @end |
相关文章推荐
- iOS6新特征:UIRefreshControl[下拉刷新]使用示例
- iOS6新特征:UIRefreshControl[下拉刷新]使用示例
- iOS6新特征:UIRefreshControl[下拉刷新]使用示例
- iOS6新特征:UIRefreshControl[下拉刷新]使用示例
- iOS6新特征:UICollectionView高级使用示例之CircleLayout
- iOS6新特征:UICollectionView高级使用示例之CircleLayout
- iOS6新特征:UICollectionView高级使用示例之CircleLayout
- iOS6新特性UIRefreshControl下拉刷新与上拉加载
- iOS6新特征:UICollectionView高级使用示例之CircleLayout
- iOS6新特征:UICollectionView高级使用示例之CircleLayout
- iOS6新特征:UICollectionView高级使用示例之CircleLayout
- iOS UIRefreshControl的使用 示例
- 使用系统自带的 UIRefreshControl 实现下拉刷新
- iOS6新特征:SLComposeViewController [新浪微博] 使用示例
- iOS6新特征:UICollectionView高级使用示例之CircleLayout
- 使用系统自带的 UIRefreshControl 实现下拉刷新
- iOS6新特征:UICollectionView高级使用示例之CircleLayout
- iOS6新特征:UICollectionView官方使用示例代码研究
- 使用系统自带的 UIRefreshControl 实现下拉刷新
- iOS6新特征:UICollectionView高级使用示例之CircleLayout