我想在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];
}
}
}
}
嘗試把報頭的內部另一視圖和拉伸這一點。當我試圖修改標題視圖的矩形時,我遇到了同樣的跳躍問題。 – Stuart