2012-09-25 33 views
5

我想在UITableView上添加一個UIView。目的是當用戶拉下內容(正常情況下用於拉動刷新),而不是顯示UITableView的背景時,表格上方的UIView應該增長以停留在頂部滑動的UITableViewCell上。當用戶滾動另一種方式(內容上升)時,UIView將消失,就好像它只是頂級的UITableViewCell一樣。隨着用戶拉動在UITableView中增長頭文件

您可以在Path(下拉時間軸和頂部個人資料圖片展開,example at 0:15)以及新的Facebook應用程序的簽入(地圖增長到附近地點列表上方)中看到此實施。

不確定最好的方式去做這件事。我認爲要達到類似的效果,你必須將UIView作爲第一個單元格。但this question讓我擔心在滾動時調整單元格的高度。理論上,調整大小隻需要在下拉時發生,而不是推高,如果它只是頂級的UITableViewCell。

編輯:當前的代碼 - 利用rummad我添加在tableview中的contentOffset一個的keyPath觀察員,並基於該調整單元格的高度,但它的跳躍所有的地方建議。

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{ 
    if (self.tableView == (UITableView*)object) { 
     if ([keyPath isEqualToString:@"contentOffset"]) { 
      CGPoint scrollLoc = self.tableView.contentOffset; 
      if (scrollLoc.y < 0) { 
       NSLog(@"offset:%@", NSStringFromCGPoint(scrollLoc)); 
       headerSize = 100 - scrollLoc.y; 
       [self.tableView beginUpdates]; 
       [self.tableView endUpdates]; 
      } 
     } 
    } 
} 
+0

嘗試把報頭的內部另一視圖和拉伸這一點。當我試圖修改標題視圖的矩形時,我遇到了同樣的跳躍問題。 – Stuart

回答

4

在你viewDidScroll:委託方法跟蹤contentOffsetUITableView。然後您可以相應地設置UIView的框架。

+0

你會在這裏發佈一些示例代碼 –

相關問題