UITableView實現下拉重新整理新增資料功能

安迪潘發表於2011-11-06
用UITableViewDelegate中的這個方法:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath;


判定tableView中的陣列數是否即將顯示最後一個cell,if (indexPath.row == [self.dataArr count]-1) 

想在下邊加個檢視的話,可以這麼做:

UITableView中的tableFooterView裡

self.tableView.tableFooterView = footSpinnerView;//footSpinnerView為自定義的UIView,上面加了一個旋轉的 UIActivityIndicatorView即可,記得讓UIActivityIndicatorView startAnimation

加上你關於重新整理陣列的邏輯,如從資料庫中取出更多的資料,取完資料後,將self.tableView.tableFooterView設nil即可。

Demo:
#pragma mark -
#pragma mark UITableViewDelegate
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
       if (indexPath.row == [self.productArr count]-1) {
             [self setupFootSpinnerView];   
             self.tableView.tableFooterView = footSpinnerView;
             if (currentArrCount < dataCount)  {
            currentArrCount += 5;
            self.dataArr = [dao getArrayOfDataLimit:currentArrCount offset:0];//從資料庫中重新取資料
             [self.tableView reloadData];
      }else {
           self.tableView.tableFooterView = nil;
     }
   }
}

相關文章