[英]Add cells to top of UITableView
我想在不移動可見單元格的情況下向表格視圖添加行,這與iPhone,Tweetbot和其他幾個推特類似。 到目前為止,我嘗試過的每種方法最終都可以實現這一目標,但是在兩者之間卻要進行時髦的動畫處理。 這是當前的解決方案,該解決方案可移動單元格,但最終最終停留在同一位置。
- (void)controllerDidChangeContent:(NSFetchedResultsController*)controller
{
UITableViewCell *referenceCell;
if ([self.tableView.visibleCells count] > 0) {
referenceCell = [self.tableView.visibleCells lastObject];
}
CGFloat offset = referenceCell.frame.origin.y - self.tableView.contentOffset.y;
[self.tableView endUpdates];
[self.tableView setContentOffset:CGPointMake(0.0, referenceCell.frame.origin.y - offset) animated:NO];
}
嘗試這個:
UITableViewRowAnimationNone
在UITableView
上調用-insertRowsAtIndexPaths:withRowAnimation:
您可以一次性指定要插入的所有索引路徑。 插入的行數必須與新項目的數量匹配。 -setContentOffset:
和以前一樣 避免在表視圖上調用-beginUpdates
和-endUpdates
。 -endUpdates
導致對原始單元進行動畫處理。
似乎單獨的insertRowsAtIndexPaths可以使單元動畫。 您可以嘗試這樣的解決方法:
for (UITableViewCell *cell in [tableView visibleCells])
{
[cell.layer removeAllAnimations];
}
您能否重新加載數據源,然后立即調用
[tableview selectRowAtIndexPath: animated:NO scrollPosition:<#(UITableViewScrollPosition)#>];
您可能需要獲取可以處理的當前職位
[[tableview indexPathsForVisibleRows] objectAtIndex:0];
我還沒有測試過,所以我不是100%。
剛剛在此處發布了帶有代碼段的答案
基本上:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.