這幾天因為住的地方的網出了一點問題,除了能上Q,上微博以外其他的網頁全都無法登陸。部落格也就沒有跟進。今天恢複了,所以繼續更新部落格。也希望大家能繼續評論或私自給我一些建議或者交流:-) 今天找到了以前一個TableView的例子,主要關於上下拉重新整理的,所以寫了一個demo,然後更新到部落格上來。 內建重新整理 內建重新整理是蘋果IOS6以後才推出的一個API,主要是針對TableViewController增加了一個屬性,refreshControl,所以如果想用這個內建下拉重新整理的話,最好給你的TableView指定一個專門的視圖控制器了。 使用的話,我們需要給refreshControl指定一個UIRefreshControl對象。跟進到標頭檔中看到 三個屬性,算上初始化三個方法,並不難,然後配置refreshControl [cpp] /******內建重新整理的常用屬性設定******/ UIRefreshControl *refresh = [[UIRefreshControl alloc] init]; refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"下拉重新整理"]; refresh.tintColor = [UIColor blueColor]; [refresh addTarget:self action:@selector(pullToRefresh) forControlEvents:UIControlEventValueChanged]; self.refreshControl = refresh; 設定了一個監聽方法,來簡單看下其實現 [cpp] //下拉重新整理 - (void)pullToRefresh { //類比網路訪問 [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"重新整理中"]; double delayInSeconds = 1.5; dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ _rowCount += 5; [self.tableView reloadData]; //重新整理結束時重新整理控制項的設定 [self.refreshControl endRefreshing]; self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"下拉重新整理"]; [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; _bottomRefresh.frame = CGRectMake(0, 44+_rowCount*RCellHeight, 320, RCellHeight); }); } 因為這裡並不是真正進行網路訪問,所以這裡用到了一個類比網路訪問延時的方法 dispatch_after 關於這個GCD方法並不難,只要設定延時時間和延時結束Block中的代碼即可。