iOS中UIRefreshControl的基本使用详解

iOS中UIRefreshControl的基本使用详解,第1张

概述iOS中UIRefreshControl的基本使用详解 简介: 在展示一些经常需要更新的列表时,例如商品列表.聊天列表时,我们需要通过某种 *** 作来刷新列表,最常用的便是下拉刷新的方法了,下拉刷新作为iOS的标准控件,即使不实用第三方库也可以容易的实现,这篇文章将向大家讲解如何使用UIRefreshControl实现下拉刷新功能. UIRefreshControl是iOS6自带的UITableView下拉刷新控件.iOS6中,UITableViewController已经内置了UIRefreshControl控件.UIRefreshControl目前只能

简介:

在展示一些经常需要更新的列表时,例如商品列表、聊天列表时,我们需要通过某种 *** 作来@R_743_6419@,最常用的便是下拉刷新的方法了,下拉刷新作为iOS的标准控件,即使不实用第三方库也可以容易的实现,这篇文章将向大家讲解如何使用UIRefreshControl实现下拉刷新功能。

UIRefreshControl是iOS6自带的UItableVIEw下拉刷新控件。iOS6中,UItableVIEwController已经内置了UIRefreshControl控件。UIRefreshControl目前只能用于UItableVIEwController,如果用在其他VIEwController中,运行时会得到如下错误提示:(即UIRefreshControl只能被UItableVIEwController管理)

1. 首先看一下UIRefreshControl的头文件

NS_CLASS_AVAILABLE_IOS(6_0) @interface UIRefreshControl : UIControl- (instancetype)init;@property (nonatomic,Readonly,getter=isRefreshing) BOol refreshing;// 菊花颜色@property (nonatomic,retain) UIcolor *tintcolor;// 下拉刷新文字描述@property (nonatomic,retain) NSAttributedString *attributedTitle UI_APPEaraNCE_SELECTOR;// 开始刷新- (voID)beginRefreshing NS_AVAILABLE_IOS(6_0);// 结束刷新- (voID)endRefreshing NS_AVAILABLE_IOS(6_0);@end 

使用方法

1.目前只对UItablevIEwController有用;

2.目前只能下拉刷新,不能上拉加载;

3.init或者vIEwDIDLoad中创建UIRefreshControl,设置文字,颜色等信息;

4.给UIRefreshControl添加方法,当值改变的时候调用,方法用于数据请求;

5.该方法中请求数据确认完成之后,调用endRefreshing方法,关闭刷新;

2.示例Demo

#import <UIKit/UIKit.h>@interface RefreshtableVIEwController : UIVIEwController <UItableVIEwDelegate,UItableVIEwDataSource>@property (nonatomic,retain) UItableVIEw * tableVIEw;@property (nonatomic,retain) UIRefreshControl * refreshControl;@property (nonatomic,retain) NSMutableArray * dataSource;@end 
#import <UIKit/UIKit.h>@interface RefreshtableVIEwController : UIVIEwController <UItableVIEwDelegate,retain) NSMutableArray * dataSource;@end#import "RefreshtableVIEwController.h"@interface RefreshtableVIEwController ()@end @implementation RefreshtableVIEwController- (voID)vIEwDIDLoad { [super vIEwDIDLoad];  _dataSource = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",nil nil];  // UItableVIEw _tableVIEw = [[UItableVIEw alloc] initWithFrame:self.vIEw.frame style:UItableVIEwStylePlain]; _tableVIEw.delegate = self; _tableVIEw.dataSource = self; [_tableVIEw registerClass:[UItableVIEwCell class] forCellReuseIDentifIEr:@"UItableVIEwCell"]; [self.vIEw addSubvIEw:_tableVIEw];  // UIRefreshControl _refreshControl = [[UIRefreshControl alloc] init]; _refreshControl.tintcolor = [UIcolor redcolor]; _refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"下拉刷新"]; [_refreshControl addTarget:self action:@selector(refreshControlAction) forControlEvents:UIControlEventValueChanged]; [_tableVIEw addSubvIEw:_refreshControl];} - (voID) refreshControlAction { if (self.refreshControl.refreshing) {  _refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"加载中..."];   // 1. 远程请求数据  [self requestAPIData];   // 2. 结束刷新  [self.refreshControl endRefreshing];   // 3. 重新加载数据  [self.tableVIEw reloadData]; }} - (voID)requestAPIData { // 模拟远程请求所耗费的时间 [NSThread sleepForTimeInterval:2]; for (int i = 0; i < 5; i++) {  int value = (arc4random() % 100) + 1;  [self.dataSource addobject:[Nsstring stringWithFormat:@"%d",value]]; }} - (NSInteger) tableVIEw:(UItableVIEw *)tableVIEw numberOfRowsInSection:(NSInteger)section { return self.dataSource.count;} - (UItableVIEwCell *)tableVIEw:(UItableVIEw *)tableVIEw cellForRowAtIndexPath:(NSIndexPath *)indexPath { static Nsstring * ID = @"UItableVIEwCell"; UItableVIEwCell * cell = [tableVIEw dequeueReusableCellWithIDentifIEr:ID]; if (cell == nil) {  cell = [[UItableVIEwCell alloc] initWithStyle:UItableVIEwCellStyleDefault reuseIDentifIEr:ID]; }  cell.textLabel.text = self.dataSource[indexPath.row]; return cell;} - (voID)dIDReceiveMemoryWarning { [super dIDReceiveMemoryWarning];}@end 

运行效果:

关于UIRefreshControl在使用的一些踩坑指南,大家可以参考这篇文章://www.jb51.net/article/139064.htm

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

总结

以上是内存溢出为你收集整理的iOS中UIRefreshControl的基本使用详解全部内容,希望文章能够帮你解决iOS中UIRefreshControl的基本使用详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1110005.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存