ios学习:UITableview二(下拉刷新)

 

  1 /*
  2  实现tableview的下拉刷新
  3  tableview滑动就会触发这个方法?
  4  */
  5 -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
  6 {
  7     //当tableview下拉到最后一行的时候才触发
  8     if (indexPath.row == self.m_data.count - 1) {
  9         
 10         //定义一个UIView
 11         UIView *footSpinnerView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 60.0f)];
 12         
 13         //顶一个有刷新图标的view
 14         UIActivityIndicatorView *activity = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(130.0f, 0.0f, 60.0f, 60.0f)];
 15         activity.color = [UIColor redColor];
 16         [activity startAnimating];//启动有刷新图标的view
 17         
 18         footSpinnerView.backgroundColor = [UIColor grayColor];
 19         [footSpinnerView addSubview:activity];
 20         
 21         //设置footerview
 22         self.myTableView.tableFooterView = footSpinnerView;
 23         
 24      //   self.myTableView.tableHeaderView = footSpinnerView;
 25         
 26         dispatch_queue_t queue = dispatch_queue_create("my queue", nil);
 27         
 28         //在后台线程添加数据
 29         dispatch_async(queue, ^(void){
 30             
 31             [self.m_data addObject:@"1000"];
 32             [self.m_data addObject:@"1001"];
 33             [self.m_data addObject:@"1002"];
 34             [self.m_data addObject:@"1003"];
 35             [self.m_data addObject:@"1004"];
 36             
 37         });
 38         
 39         //添加完数据就重新加载数据
 40         dispatch_async(queue, ^(void) {
 41             
 42             sleep(2);
 43             dispatch_sync(dispatch_get_main_queue(), ^(void){
 44                 
 45                 [self.myTableView reloadData];
 46             });
 47         });
 48         
 49        // [self.myTableView reloadData];
 50         dispatch_release(queue);
 51         [footSpinnerView release];
 52         [activity release];
 53     }
 54 //   else if (indexPath.row == 0) {
 55 //        
 56 //        UIView *footSpinnerView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 60.0f)];
 57 //        UIActivityIndicatorView *activity = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(130.0f, 0.0f, 60.0f, 60.0f)];
 58 //        activity.color = [UIColor redColor];
 59 //        [activity startAnimating];
 60 //        
 61 //        footSpinnerView.backgroundColor = [UIColor grayColor];
 62 //        [footSpinnerView addSubview:activity];
 63 //        
 64 //     //   self.myTableView.tableFooterView = footSpinnerView;
 65 //        
 66 //        self.myTableView.tableHeaderView = footSpinnerView;
 67 //        
 68 //        dispatch_queue_t queue = dispatch_queue_create("my queue", nil);
 69 //        
 70 //        dispatch_async(queue, ^(void){
 71 //            
 72 //            [self.m_data insertObject:@"1000" atIndex:0];
 73 ////            [self.m_data addObject:@"1001"];
 74 ////            [self.m_data addObject:@"1002"];
 75 ////            [self.m_data addObject:@"1003"];
 76 ////            [self.m_data addObject:@"1004"];
 77 //         //   [self.m_data insertObject:[NSArray arrayWithObject:@"01"] atIndex:0];
 78 //            
 79 //        });
 80 //        
 81 //        dispatch_async(queue, ^(void) {
 82 //            
 83 //            sleep(2);
 84 //            dispatch_sync(dispatch_get_main_queue(), ^(void){
 85 //                
 86 //                [self.myTableView reloadData];
 87 //                [self.myTableView scrollToRowAtIndexPath:[indexPath initWithIndex:3] atScrollPosition:UITableViewScrollPositionNone animated:YES];
 88 //           });
 89 //        });
 90 //        
 91 //
 92 //       dispatch_release(queue);
 93 //        [footSpinnerView release];
 94 //        [activity release];
 95 //    }
 96 
 97     //如果不是最后一行,则把footerview和headerview都设为nil
 98     else
 99     {
100         self.myTableView.tableFooterView = nil;
101         self.myTableView.tableHeaderView = nil;
102     }
103 }

 

posted @ 2012-12-17 17:08  仙外仙  阅读(5510)  评论(0编辑  收藏  举报