2011-03-18 45 views
5
的頂部

嗨,我找了這個問題,我不相信我會找到答案。我有一個自定義單元格的表格,點擊時,選定的單元格將一個新的單元格與信息。我想知道是否有人知道如何將所選單元格推到可用視圖的頂部,或者填充整個tableview。iPhone - 有選擇的細胞轉移到UITableView的

我的uitableview只佔用了屏幕的一半,我希望當單元格被選中時它只佔用屏幕的一半,並且用戶仍然能夠滾動單元格(如果這是有意義的) ?

任何建議,將不勝感激,這是有些困難來形容我所期待的,所以如果有人需要澄清,請不要猶豫,問我。

謝謝!

回答

13

中的cellForRowAtIndexPath,你需要把這個在你創建細胞

[tableView scrollToRowAtIndexPath:selectedCellIndexPath atScrollPosition:UITableViewScrollPositionTop animated:YES]; 

後這奏效了,我與細胞的自定義高度爲好。

0

在我的應用我有一堆細胞的擴大點擊時要大一些;一次只能擴展1個單元。我基本上跟蹤當前選擇的indexPath,然後在heightForRowAtIndexPath中:檢查這是否是選擇的賣出;如果是我返回更高的高度。

然後,在didSelectRowAtIndexPath方法:我剛纔設置的電流indexPath,並重新加載這兩個新的細胞和前一個。這聽起來與你正在尋找的東西類似......會起作用嗎?

0

要將選定的單元格移動到tableview頂部,可以將選定單元格的索引存儲在didSelectRowAtIndexPath實例變量中,然後調用[tableView reloadData]。

在您的數據源的的tableView:的cellForRowAtIndexPath:方法,您要確保所選擇的小區則返回索引0和它們的索引返回前,所選單元格的所有單元格+ 1

0

如果你正在尋找移動單元格,這是一個可以從頭開始的基礎。

-(void)moveIndexPathToTop:(NSIndexPath *)pathToMove 
{ 
    [myTable deleteRowsAtIndexPaths:[NSArray arrayWithObject:pathToMove] withRowAnimation:UITableViewRowAnimationFade]; 
    NSIndexPath *firstRow = [NSIndexPath indexPathForRow:0 inSection:0]; 
    [myTable insertRowsAtIndexPaths:[NSArray arrayWithObject:firstRow] withRowAnimation:UITableViewRowAnimationFade]; 
} 

這會將行移動到UITableView所保留的位置。當然,您還需要匹配數據源中的新訂單。 (如您的數據的陣列中改變順序)

此外,你可能會想,當你做這個表中滾動到頂部。

+0

我會如何將單元格回哪裏當它被取消它是什麼? – 2011-03-18 21:41:27