ios中uitableview上拉刷新和下拉刷新(1)
在一个项目开发过程中为了更好的体验经常会用到下拉刷新更新数据,当然也伴随一些上拉加载更多数据的情况;当前比较火的EGOTableViewPullRefresh只实现了下拉功能,而没有上拉的功能。这里介绍一个同时集成下拉刷新和上拉加载更多的类库EGOTableViewPullRefresh
英文原文和类库下载地址:https://github.com/emreberge/EGOTableViewPullRefresh 附带 Demo效果 Whats different on this fork:
容易集成,使用interface builder 添加tableView进行配置。
配置简单, 箭头头像,背景颜色和文本颜色都能通过PullTableView类的属性很容易的更改。
上拉加载更多数据功能在Table的底部。
可以通过代码修改刷新和加载更多动画。
The fast setup:
添加 QuartzCore.framework 到你的工程中。
将 EGOTableViewPullRefresh 拖到你的工程目录下。
查看 PullTableView.h 文件可用的属性。
添加一个PullTableView 到你代码中,实现PullTableViewDelegate委托方法。
欣赏吧。
The detailed setup (Walk through for creating the demo project):
创建一个新的xcode工程
选择 View Based Application 模板(xcode .2以后版本是 Single View Application模板)
工程名字 EGOTableViewPullRefreshDemo
在工程文件下创建EGOTableViewPullRefreshDemoViewController控制器类(Single View Application模板不需这步)
添加 QuartzCore.framework 到工程中
添加 PullTableView 到工程里:
拖拽 EGOTableViewPullRefresh 目录下文件到工程支持的文件组下,确保(EGOTableViewPullRefresh)下文件都拷贝到目标文件组下。
添加 PullTable 视图到 EGOTableViewPullRefreshDemoViewController.xib上:
拖一个UITableView控件到View视图上.
打开 Identity inspector 将Table 的继承类由 UITableView 改成PullTableView
连接 dataSources数据源和 pullDelegate协议到PullTableView的 File's owner上
配置视图控制器的头文件 EGOTableViewPullRefreshDemoViewController.h:
添加 #import "PullTableView.h"
声明 PullTableViewDelegate 和 UITableViewDataSource协议
创建一个属性名为pullTableView的输出口连接到interface Builder上的tableView上
配置视图控制器和页脚 EGOTableViewPullRefreshDemoViewController.m
在.m文件中添加下面代码 [cpp] view plaincopy
#pragma mark - Refresh and load more methods - (void) refreshTable
{
/* Code to actually refresh goes here. 刷新代码放在这 */
self.pullTableView.pullLastRefreshDate = [NSDate date];
self.pullTableView.pullTableIsRefreshing = NO;
} - (void) loadMoreDataToTable
{
/* Code to actually load more data goes here. 加载更多实现代码放在在这 */
self.pullTableView.pullTableIsLoadingMore = NO;
} #pragma mark - UITableViewDataSource - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return ;
} - (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return ;
} - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; if(!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
cell.textLabel.text = [NSString stringWithFormat:@"Row %i", indexPath.row]; return cell;
} - (NSString *) tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return [NSString stringWithFormat:@"Section %i begins here!", section];
} - (NSString *) tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
{
return [NSString stringWithFormat:@"Section %i ends here!", section];
} #pragma mark - PullTableViewDelegate - (void)pullTableViewDidTriggerRefresh:(PullTableView *)pullTableView
{ [self performSelector:@selector(refreshTable) withObject:nil afterDelay:3.0f];
} - (void)pullTableViewDidTriggerLoadMore:(PullTableView *)pullTableView
{
[self performSelector:@selector(loadMoreDataToTable) withObject:nil afterDelay:3.0f];
} 对于UI的配置,在ViewDidLoad()方法里面添加下面代码(比如 修改刷新和上拉的背景色箭头头像等)
[cpp] view plaincopy
self.pullTableView.pullArrowImage = [UIImage imageNamed:@"blackArrow"];
self.pullTableView.pullBackgroundColor = [UIColor yellowColor];
self.pullTableView.pullTextColor = [UIColor blackColor]; 对于手动设置动画可使用 pullTableIsRefreshing 和pullTableIsLoadingMore 属性. 比如在 viewWillAppear:方法里面添加下面的代码 [cpp] view plaincopy
if(!self.pullTableView.pullTableIsRefreshing) {
self.pullTableView.pullTableIsRefreshing = YES;
[self performSelector:@selector(refreshTable) withObject:nil afterDelay:];
}
请注明出处http://blog.csdn.net/duxinfeng2010
ios中uitableview上拉刷新和下拉刷新(1)的更多相关文章
- 上拉加载下拉刷新控件WaterRefreshLoadMoreView
上拉加载下拉刷新控件WaterRefreshLoadMoreView 效果: 源码: // // SRSlimeView // @author SR // Modified by JunHan on ...
- ListView(2)最简单的上拉刷新,下拉刷新
最简单的上拉刷新和下拉刷新,当listview滚动到底部时向上拉刷新数据.当listview滚动到最顶部时下拉刷新. 图1,上拉刷新 图2,下拉刷新 1,设置lisview,加载heade ...
- Vue mint ui用在消息页面上拉加载下拉刷新loadmore 标记
之前总结过一个页面存在多个下拉加载的处理方式,今天再来说一下在消息页面的上拉加载和下拉刷新,基本上每个app都会有消息页面,会遇到这个需求 需求:每次加载十条数据,上拉加载下拉刷新,并且没有点击查看过 ...
- PullToRefreshGridView上拉刷新,下拉加载
PullToRefreshGridView上拉刷新,下拉加载 布局: <?xml version="1.0" encoding="utf-8"?> ...
- iOS--MJRefresh的使用 上拉刷新和下拉加载
1.一般使用MJRefresh 来实现上拉刷新和下拉加载功能 2.MJRefresh 下载地址:https://github.com/CoderMJLee/MJRefresh 3. MJRefresh ...
- ListView(2)最简单的上拉刷新、下拉刷新代码
效果 最简单的上拉刷新和下拉刷新,当listview滚动到底部时向上拉刷新数据.当listview滚动到最顶部时下拉刷新. 图1,上拉刷新 图2,下拉刷新 1.设置lisview 加载he ...
- 微信小程序上拉加载下拉刷新
微信小程序实现上拉加载下拉刷新 使用小程序默认提供方法. (1). 在xxx.json 中开启下拉刷新,需要设置backgroundColor,或者是backgroundTextStyle ,因为加载 ...
- Android PullToRefreshListView上拉刷新和下拉刷新
PullToRefreshListView实现上拉和下拉刷新有两个步骤: 1.设置刷新方式 pullToRefreshView.setMode(PullToRefreshBase.Mode.BOTH) ...
- iscroll.js实现上拉刷新,下拉加载更多,应用技巧项目实战
上拉刷新,下拉加载更多...仿原生的效果----iscroll是一款做滚动效果的插件,具体介绍我就不废话,看官方文档,我只写下我项目开发的一些用到的用法: (如果不好使,调试你的css,想必是个很蛋疼 ...
随机推荐
- Combination Sum leetcode java
题目: Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C ...
- 搭建MySQL高可用负载均衡集群(转)
阅读目录 1.简介 2.基本环境 3.配置MySQL主主复制 4.中间件简述 4.1.Haproxy介绍 4.2.keepalived介绍 5.中间件的安装与配置(haproxy.keepalived ...
- jquery 控制css样式
一.CSS 1.css(name) 访问第一个匹配元素的样式属性. 返回值 String 参数 name (String) : 要访问的属性名称 示例: $("p").css(&q ...
- [VS2010搭建汇编开发环境win32和x64]
场景: 1. 虽然使用MASM32也可以编译运行汇编程序,但是既然装了VS2010,它也能支持编译运行汇编吧.不然微软的开发人员难道还不用vs写汇编程序了? http://www.masm32.com ...
- Java Base64加密解密
使用Apache commons codec 类Base64 maven依赖 <dependency> <groupId>commons-codec</groupId&g ...
- 转:Logistic regression (逻辑回归) 概述
Logistic regression (逻辑回归)是当前业界比较常用的机器学习方法,用于估计某种事物的可能性.比如某用户购买某商品的可能性,某病人患有某种疾病的可能性,以及某广告被用户点击的可能性等 ...
- R-向量
- JPA(六):映射关联关系------映射单向一对多的关联关系
映射单向一对多的关联关系 新建项目项目请参考<JPA(二):HellWord工程>,基于上一章讲解的<JPA(五):映射关联关系------映射单向多对一的关联关系>中的例子进 ...
- C#.NET常见问题(FAQ)-如何声明list的多维数组
可以用下面的方法来声明多维list数组,但是不推荐使用 //对于一维数组:List<数据类型> 变量 = new List<数据类型>(); List<int> ...
- 003-Go初探Iris
1.参考资源:https://iris-go.com/v10/start#Getting-Started 2.首先下载:go get -u github.com/kataras/iris,此处时间较长 ...