iOS下拉重新整理上拉載入更多EGOTableViewPullRefresh類庫

來源:互聯網
上載者:User

在一個項目開發過程中為了更好的體驗經常會用到下拉重新整理更新資料,當然也伴隨一些上拉載入更多資料的情況;當前比較火的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 4.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檔案中添加下面代碼

#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 5;}- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{    return 10;}- (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()方法裡面添加下面代碼(比如 修改重新整理和上拉的背景色箭頭頭像等)
self.pullTableView.pullArrowImage = [UIImage imageNamed:@"blackArrow"];self.pullTableView.pullBackgroundColor = [UIColor yellowColor];self.pullTableView.pullTextColor = [UIColor blackColor];

  • 對於手動設定動畫可使用 pullTableIsRefreshing 和pullTableIsLoadingMore 屬性. 比如在 viewWillAppear:方法裡面添加下面的代碼

if(!self.pullTableView.pullTableIsRefreshing) {    self.pullTableView.pullTableIsRefreshing = YES;    [self performSelector:@selector(refreshTable) withObject:nil afterDelay:3];}

原創部落格歡迎轉載分享,請註明出處http://blog.csdn.net/duxinfeng2010

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.