簡體   English   中英

iPhone - 選擇的單元格移動到 uitableview 的頂部

[英]iPhone - having selected cell move to top of uitableview

我尋找了這個問題,但我不相信我能找到答案。 我有一個自定義單元格的表格視圖,單擊時,選定的單元格會推送一個包含信息的新單元格。 我想知道是否有人知道如何將選定的單元格推到 uitableview 的頂部,或者讓它填滿整個 tableview。

我的 uitableview 只占據屏幕的一半,我希望在選擇單元格時它只占據屏幕的那一半,並且用戶仍然能夠滾動單元格(如果有意義的話)?

任何建議將不勝感激,描述我在尋找什么有點困難,所以如果有人需要澄清,請不要猶豫問我。

在 cellForRowAtIndexPath 中,您需要在創建單元格后將其放入

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

這也為我提供了自定義單元格高度的技巧。

在我的應用程序中,我有一堆單元格,單擊時會放大; 並且一次只能擴展 1 個單元格。 我基本上是跟蹤當前選中的indexPath,然后在heightForRowAtIndexPath中:查看這個是不是選中的sell; 如果是我返回一個更大的高度。

然后,在 didSelectRowAtIndexPath: 中,我只是設置了當前的 indexPath,然后重新加載新單元格和前一個單元格。 這聽起來與您要查找的內容相似……那行得通嗎?

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

在數據源的 tableView:cellForRowAtIndexPath: 方法中,您將確保為索引 0 返回所選單元格,並為其索引 + 1 返回所選單元格之前的所有單元格。

如果您想移動單元格,這是您可以開始的基礎。

-(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 被考慮的位置。 當然,您還需要匹配數據源中的新訂單。 (例如更改數據數組中的順序)

此外,您可能希望在執行此操作時將表格滾動到頂部。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM