最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:懂视网 责编:小采 时间:2020-11-09 07:26:35
文档

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

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

关于如何在页面中使用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

//@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中, 将提示的英文换成中文.


好了, 完成~~~

文档

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

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

最新推荐

猜你喜欢

热门推荐

专题
Top