0

0

关于下拉更新框架 EGORefreshTableHeaderView在Xcode4.2中, ARC

php中文网

php中文网

发布时间:2016-06-07 15:37:19

|

1239人浏览过

|

来源于php中文网

原创

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

关于如何在页面中使用egorefreshtableheaderview的文章网上一大把, 抄来抄去的, 但也都没什么大问题.  只是在xcode4.2的arc环境中使用的时候, 错误一把. 借此机会, 完整的记录一下如何排除错误, 及使用的方法.

首先第一步当然是下载这个下拉更新的框架了.  https://github.com/enormego/EGOTableViewPullRefresh/downloads


下载之后解包, 然后将 

EGORefreshTableHeaderDelegate.h

EGORefreshTableHeaderDelegate.m

这两个文件, 以及项目中的图片文件都复制到你的项目文件内, 这时候, 如果你启用了ARC, 应该会报一片错误, 让我们来具体看一下. 


启用了ARC之后, 就不允许手动的release了, 因此, [view release], [lable release] 还有 autorelease这样的代码都需要删除掉.

在EGORefreshTableHeaderDelegate.m的这个文件中,   @synthesize delegate=_delegate;  会报错,  "Existing ivar 'delegate' for assign property 'delegate' must be... 

解决办法是需要将EGORefreshTableHeaderDelegate.h文件中的 assign 换为retain

绘蛙
绘蛙

电商场景的AI创作平台,无需高薪聘请商拍和文案团队,使用绘蛙即可低成本、批量创作优质的商拍图、种草文案

下载
//@property(nonatomic,assign) id  delegate;   //删除掉. 换为下面的
@property(nonatomic,retain)id  delegate;

这样代码就会通过编译了~ 这样就需要将EGORefreshTableHeaderView与我们的tableview整合了, 然后按照Demo的方法, 

添加EGORefreshTableHeaderDelegate的接口, 

定义_reloading, 和EGORefreshHeaderView

声明reloadTableViewDataSource和doneLoadingTableView这两个函数

#import 
#import "EGORefreshTableHeaderView.h"

@interface FMFutureMessage : UIViewController
{
    BOOL _reloading;
    EGORefreshTableHeaderView *_refreshHeaderView;
}

@property(strong, nonatomic) IBOutlet UITableView *tbView;

-(void)reloadTableViewDataSource;
-(void)doneLoadingTableViewData; 
@end

接下来, 我们需要将xib文件中的TableViewController与这里定义的tbView建立关联, 因为我忘记了指定tbView与XIB中的TabViewController, 导致了刷新箭头怎么样也显示不出来, 所以一定不要忘记啊~~~~
现在我们处理一下.m文件

处理m文件, 建立关联.和响应事件.

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    if(_refreshHeaderView == nil)
    {
        EGORefreshTableHeaderView *view = [[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0.0f, 0.0f - self.tbView.bounds.size.height, self.view.frame.size.width, self.tbView.bounds.size.height)];
 
        view.delegate = self;
        [self.tbView addSubview:view];
        _refreshHeaderView = view;
    }
    [_refreshHeaderView refreshLastUpdatedDate];
}


响应事件, 事件的响应代码就简单的多了, 按照DEMO的方法, 把接口的函数都声明了就OK了.
 
-(void)reloadTableViewDataSource
{
    NSLog(@"==开始加载数据");
    [self.tbView reloadData];
    _reloading = YES;
     
}
- (void)doneLoadingTableViewData{  
    
     NSLog(@"===加载完数据"); 
    //  model should call this when its done loading  
       _reloading = NO;  
    [_refreshHeaderView egoRefreshScrollViewDataSourceDidFinishedLoading:self.tbView];  
 
 
}  
#pragma mark – 
#pragma mark UIScrollViewDelegate Methods 
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{  
    
    [_refreshHeaderView egoRefreshScrollViewDidScroll:scrollView];  
    
}  

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{  
    
    [_refreshHeaderView egoRefreshScrollViewDidEndDragging:scrollView];  
    
}
 
#pragma mark – 
#pragma mark EGORefreshTableHeaderDelegate Methods 
- (void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView*)view{  
    
    [self reloadTableViewDataSource];  
    [self performSelector:@selector(doneLoadingTableViewData) withObject:nil afterDelay:3.0];  
  
      
    
}  
- (BOOL)egoRefreshTableHeaderDataSourceIsLoading:(EGORefreshTableHeaderView*)view{  
    
    return _reloading; // should return if data source model is reloading  
    
}  
- (NSDate*)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView*)view{  
    
    return [NSDate date]; // should return date data source was last changed  
    
}

最后, 如果是开发中文应用程序, 不要忘记进入EGORefreshTableHeaderView.m中, 将提示的英文换成中文. 


好了, 完成~~~

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

22

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

24

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

99

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

132

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

15

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

65

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

61

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

63

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 4.8万人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.7万人学习

Django 教程
Django 教程

共28课时 | 3.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号