[英]In iOS, selected cell should move to top portion without any disturbance in 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.