EGORefreshTableHeaderView —— UITableView下拉刷新页面的实现

基于QT实现的上下拉刷新的功能 基于QT实现的上下拉刷新的功能,采用QML的方式实现的。 立即下载

以前看到facebook,人人和其他的一些应用,很多都使用了下拉列表,列表就重新加载数据的应用.感觉用户体验很好,但是一直没有时间找相应的解决方法,今天终于有时间整理一下代码:

下图是实现的效果图,当用户下拉列表的时候,就出现向上的箭头.

image image

实现的开源框架是:https://github.com/enormego/EGOTableViewPullRefresh

实现过程很简单,下载相应的demo,然后拷贝资源文件和EGORefreshTableHeaderView.h和EGORefreshTableHeaderView.m到相依的工程中.在table所在的类中添加如下代码:

01 #import <UIKit/UIKit.h>
02 #import "EGORefreshTableHeaderView.h"
03 <a href="http://my.oschina.net/interface" class="referer"target="_blank">@interface</a> iphone_navtaViewController : UIViewController
04 <UITableViewDelegate,UITableViewDataSource,EGORefreshTableHeaderDelegate>{
05     BOOL isflage;
06     IBOutlet UITableView *myTableView;
07    EGORefreshTableHeaderView *_refreshHeaderView;
08     BOOL _reloading;
09 }
10 @property (nonatomic,retain) UITableView *myTableView;
11 - (void)reloadTableViewDataSource;
12 - (void)doneLoadingTableViewData;
13 @end

实现方法:

01 #import "iphone_navtaViewController.h"
02 @implementation iphone_navtaViewController
03 @synthesize myTableView;
04 - (void)viewDidLoad {
05     [super viewDidLoad];
06     if (_refreshHeaderView == nil) {
07         EGORefreshTableHeaderView *view1 = [[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0.0f, 10.0f – self.myTableView.bounds.size.height, self.myTableView.frame.size.width, self.view.bounds.size.height)];
08         view1.delegate = self;
09         [self.myTableView addSubview:view1];
10         _refreshHeaderView = view1;
11         [view1 release];
12     }
13     [_refreshHeaderView refreshLastUpdatedDate];
14 }
15 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
16     return (interfaceOrientation == UIInterfaceOrientationPortrait);
17 }
18 - (void)didReceiveMemoryWarning {
19     [super didReceiveMemoryWarning];
20 }
21 - (void)viewDidUnload {
22     self.myTableView=nil;
23     _refreshHeaderView=nil;
24 }
25 - (void)dealloc {
26     _refreshHeaderView=nil;
27     [self.myTableView release];
28     [super dealloc];
29 }
30 #pragma mark –
31 #pragma mark onClick
32 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
33 {
34       isflage=!isflage;
35     [super.navigationController setNavigationBarHidden:isflage animated:TRUE];
36     [super.navigationController setToolbarHidden:isflage animated:TRUE];
37 }
38 #pragma mark –
39 #pragma mark UITableView
40 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
41     return 1;
42 }
43 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
44     return 3;
45 }
46 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
47     UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:@"tag"];
48     if (cell==nil) {
49         cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
50                                        reuseIdentifier:@"tag"] autorelease];
51     }
52     //表格设计
53     return cell;
54 }
55 -(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
56 {
57     return 100;
58 }
59  
60 #pragma mark –
61 #pragma mark Data Source Loading / Reloading Methods
62  
63 - (void)reloadTableViewDataSource{
64     NSLog(@"==开始加载数据");
65     _reloading = YES;
66 }
67  
68 - (void)doneLoadingTableViewData{
69     NSLog(@"===加载完数据");
70     _reloading = NO;
71     [_refreshHeaderView egoRefreshScrollViewDataSourceDidFinishedLoading:self.myTableView];
72 }
73 #pragma mark –
74 #pragma mark UIScrollViewDelegate Methods
75 - (void)scrollViewDidScroll:(UIScrollView *)scrollView{  
76     [_refreshHeaderView egoRefreshScrollViewDidScroll:scrollView];
77 }
78  
79 - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
80     [_refreshHeaderView egoRefreshScrollViewDidEndDragging:scrollView];
81 }
82 #pragma mark –
83 #pragma mark EGORefreshTableHeaderDelegate Methods
84 - (void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView*)view{
85     [self reloadTableViewDataSource];
86     [self performSelector:@selector(doneLoadingTableViewData) withObject:nil afterDelay:3.0];
87 }
88  
89 - (BOOL)egoRefreshTableHeaderDataSourceIsLoading:(EGORefreshTableHeaderView*)view{
90     return _reloading;
91 }
92 - (NSDate*)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView*)view{
93     return [NSDate date];   
94 }
95 @end

一个最重要的步骤,就是要添加QuartzCore.framework组建。

然后运行即可。

文章出处:http://wangjun.easymorse.com/?p=1193




TL494充电器原理与维修 (转) TL494充电器原理与维修 电动自行车充电器多采用开关 电源,型号虽多,但电路结构大同小异,主要区别在于所选的脉宽调制(PWM)芯片不同如(UC3845、UC3842、SG3524、TL494)。现以佳腾牌 充电器为例,介绍其原理和故障检修方法。 一、电路原理 根据实物测绘的佳腾牌充电器电路原理如图1所示。整机可分为PWM产生和推动电路、功 率开关变换电路、... 阅读详情

相关推荐

离线迁移 Conda 环境到 Windows 服务器:用 conda-pack 摆脱硬路径限制

在进行深度学习算法的环境部署时,由于生产服务器被彻底隔离外网,只能把conda中env文件夹中的虚拟环境文件夹从开发机直接拷到Windows 服务器,但在运行labelimg等工具时可能报错,因此用conda-pack来解决。

weixin_44115575的博客 1425

Qt Quick之ListView下拉刷新数据

Qt Quick里的ListView,本身是Flickable的派生类,当你用鼠标拖曳或者手指触摸(触摸屏)时,会产生flickStarted和flickEnded两个信号,利用这两个信号,就可以实现下拉刷新数据,当然上拉刷新也是可以的。

安晓辉生涯——聚焦程序员的职业规划与成长 1万+

别再手动调时间了!用Windows自带的tzutil命令,1分钟搞定时区错误

本文介绍了如何使用Windows自带的tzutil命令快速解决时区错误问题。通过简单的命令行操作,用户可以一键切换时区、查看全球时区代码库,并实现自动化时区同步。相比传统GUI设置,tzutil更可靠且高效,特别适合企业环境批量部署。

weixin_42531494的博客 313

Qml实现下拉刷新

ListHeader.qml //-------------------------------ListHeader.qml起始------------------------------------------ import QtQuick 2.0 Item {     height: 60     width: parent.width

happyrabbit456的专栏 1966

毫米波雷达SLAM实战:如何在无GPS的地下隧道实现精准三维建图(附Python代码)

本文深入探讨了在无GPS信号的地下隧道等拒止环境中,如何利用毫米波雷达SLAM技术实现精准三维建图。文章系统分析了毫米波雷达点云数据稀疏、噪声多的挑战,并提供了从环境配置、核心算法(如特征提取、ICP配准、回环检测)到全局优化的完整实战解决方案,附有可运行的Python代码,帮助开发者构建鲁棒的自主导航与建图系统。

t8u9v0w1x的博客 238

避开这些坑!baostock获取股票数据时最容易犯的5个错误(Python实战)

本文针对使用Python和baostock库获取股票历史数据时常见的五大陷阱,提供了实战解决方案。重点剖析了登录状态验证、参数配置、数据解析、批量操作效率及数据一致性校验等关键环节,帮助开发者构建稳健高效的数据获取流程,避免因细节疏忽导致的数据错误或性能瓶颈。

websocket5live的博客 1440

用当前最流行的下拉刷新pullrefresh框架实现类似QQ的下拉刷新功能

1、  用当前最流行的下拉刷新pullrefresh框架实现类似QQ的下拉刷新功能,下载地址为:https://github.com/chrisbanes/Android-PullToRefresh   我先解释一下下拉刷新涉及的过程: 1、  肯定要有一个下拉头(下拉脚),在这个源码里面LoadingLayout作为下拉头的基类,你可以参照它已经实现的几个样式自定义自己的下拉头,就是对里面

不积跬步,无以行千里! 1936

5分钟搞懂SCMA:稀疏码多址接入的核心原理与实战应用

本文深入浅出地解析了SCMA(稀疏码多址接入)的核心原理与实战应用。通过对比传统正交多址技术,阐释了SCMA如何通过非正交叠加和稀疏码本设计,实现远超资源单元数的用户接入,从而有效应对5G海量机器通信(mMTC)的挑战。文章还探讨了其在上行海量连接、免授权接入等场景的应用潜力及工程实现中的关键考量。

zeta9的博客 264

QML ListView几个常用且非常重要的属性

用 QML 开发界面的好处想必就不用多说了吧,可以总结为一个字:爽。的确如此,用 QML 可以快速的开发出一些非常酷炫和复杂的界面,并且代码还非常简洁,可读性很强,容易理解。今天要总结的是关于 ListView 中的一些常用的属性,非常实用,不过如果是刚接触 ListView 的话,可能会有些陌生(本人刚开始用的时候也是,然后翻遍了 Qt 帮助文档),所以这里汇总一些最常用的属性并介绍其用法。

hw5230的博客 959

BMW Standard Tools 宝马FSC工具套装下载

这是一款非常专业的一套宝马编码工具,懂行的人自然知道他的用处,不懂行的人,我解释再多也不会明白的,需要的拿去吧。软件名:BMW Standard Tools包含工具:BMW Coding Tool v2.50、change Language、CIC Mafia、Dr.Gini B021、EasyConnect、EDIABAS Konfigurator v1.1、EDIABAS Konfigurator v2.0.0、FSC-Tools_2.18、FSTool_v2_CarServer、INPA、ITool

Zj_arrow的博客 6996

基于YOLOv8的农作物病虫害检测系统设计与实现

国内如中国农业大学的科研团队采用改进的Faster R-CNN模型对小麦病害进行检测,取得了较好的效果。农作物病虫害是影响农业生产的重要因素之一,每年因病虫害导致的农作物减产高达20%-40%。YOLO(You Only Look Once)系列算法作为目标检测领域的代表性模型,以其高效、准确的特点在众多领域得到广泛应用。YOLOv8作为该系列的最新版本,在精度和速度上都有显著提升,非常适合农作物病虫害检测这类需要实时处理的应用场景。然而,现有研究仍存在一些不足:一是模型复杂度高,难以部署到移动设备;

YOLO 794

【无线互联】EGORefreshTableHeaderView下拉刷新 原理

在IOS中,经常会使用到ta

lxrm_xi的专栏 505

TMF8801 ToF激光测距传感器原理图设计,已量产(距离传感器)

这张 TMF8801 小板的外围结构就很有代表性。核心传感器是 U1 TMF8801,但真正构成量产价值的是外围那一圈:U2 把 VCC 整理成 3V,R1/R2/R5 与 R3/R4/R6 两组 10K 电阻稳定默认态,Q2 2N7002 和 U3 SN74LVC2G07DCKR 处理控制链路,传感器边上还有 C1/C4/C5 三颗 100nF 紧贴去耦。

不脱发的程序猿 159

UITableView下拉刷新页面的实现

<br /><br />以前看到facebook,人人和其他的一些应用,很多都使用了下拉列表,列表就重新加载数据的应用.感觉用户体验很好,但是一直没有时间找相应的解决方法,今天终于有时间整理一下代码:<br />下图是实现的效果图,当用户下拉列表的时候,就出现向上的箭头.<br /> <br />实现的开源框架是:https://github.com/enormego/EGOTableViewPullRefresh<br />实现过程很简单,下载相应的demo,然后拷贝资源文件和EGORefreshTabl

ios专栏 8527

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

UITableView 添加 下拉刷新(EGORefreshTableHeaderView)

如果你说你不知道什么是下拉刷新,好,我原谅你。不过你一定用过这些app吧? 然后你说,真好用,我也要给我的app里的所有table view都添加这个 pull & refresh 的功能。然后你就去 UIKit 里找啊找。 咦,怎么所有跟 table view 相关的 header file 里,都没有这个功能的 instance method 或者 property 描述?是不是因

Men-DD 1476

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

IOS之EGORefreshTableHeaderView下拉刷新(一)

现在似乎只要是个列表,都要有下拉刷新这一项,否则就跟不上潮流了,呵呵。下拉刷新应该很多人都采用了EGORefreshTableHeaderView,具体的UI效果当然会根据自己产品的设计,再进行修改。应用中如果要展示大量数据列表,肯定不会一次都加载进来的,常规的方法都是从服务器翻页请求,每次请求n条,用户选择加载更多的时候再请求n条。根据这个需求,我们可以仿照EGORefreshTableHead

四爷的专栏 1277

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【无限互 联】下拉刷新EGORefreshTableHeaderView的使用

现在似乎只要是个列表,都要有下拉刷新这一项,否则就跟不上潮流了,呵呵。下拉刷新应该很多人都采用了EGORefreshTableHeaderView,具体的UI效果当然会根据自己产品的设计,再进行修改。应用中如果要展示大量数据列表,肯定不会一次都加载进来的,常规的方法都是从服务器翻页请求,每次请求n条,用户选择加载更多的时候再请求n条。 要想实现下拉刷新 ,首先要往项目中添加EGORefr

qq_27015427的专栏 400

让UITableView同时支持上拉,下拉刷新

在UITableView中加入下拉刷新的功能已不再是新鲜事了。egorefreshtableheaderview已将下拉功能实现,今天我将其改为同时支持下拉,上拉。源码是修改egorefreshtableheaderview的。由于是直接修改的源码,所以不做过多介绍,直接上源码。 下载传送门 这儿还有一个一行代码有refresh功能:https://github.com/sam

Care iOS技术团队 5496

UITableView下拉刷新功能

在TableViewController中import“EGORefreshHeaderTableView.h” @interface HXDataReportViewController :MAViewControllerUISearchBarDelegate,UISearchDisplayDelegate,UIGestureRecognizerDelegate,UITableView

金闪闪的专栏 416

实现下拉更新UITableView EGORefreshTableHeaderView

关于如何在页面中使用EGORefreshTableHeaderView的文章网上一大把, 抄来抄去的, 但也都没什么大问题.  只是在XCode4.2的ARC环境中使用的时候, 错误一把. 借此机会, 完整的记录一下如何排除错误, 及使用的方法. 首先第一步当然是下载这个下拉更新的框架了.  https://github.com/enormego/EGOTableViewPullRefres

doufei_JLU_CCST_08 5778

iphone,UItableView下拉页面刷新(转载)

关于这个内容,网上找到一篇相关内容,介绍的比较详细,转载网址:UITableView下拉刷新页面的实现 http://wangjun.easymorse.com/?p=1193。该文章中还有EGORefreshTableHeaderView的链接,该开源框架是:https://github.com/enormego/EGOTableViewPullRefresh。 便于自己以后...

additem1984的博客 141
上一篇: 获取IOS设备的类型和系统版本
下一篇: UITableView实现分页显示
qtcreatorlinux
博客等级 码龄15年 17粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值