最有可能的reloadData
被調用時沒有完全執行,因爲它假定您可能會做出更多更改並告訴它重新加載。
嘗試引入零秒的延遲,給它一個機會運行:
[_items addObject:[NSString stringWithFormat:@"Trawl %d", count]];
[self.tbl reloadData];
double delayInSeconds = 0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[self.tbl scrollToRowAtIndexPath:[NSIndexPath indexPathForItem:self.items.count - 1 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:YES];
});
而且,你不應該在這種情況下使用reloadData
。這是行應該如何補充說:
[_items addObject:[NSString stringWithFormat:@"Trawl %d", count]];
[self.postsTableView beginUpdates];
[self.postsTableView insertRowsAtIndexes:[NSIndexSet indexSetWithIndex:_items.count - 1] withAnimation:NSTableViewAnimationEffectNone]; // maybe you want some other animation here
[self.postsTableView endUpdates];
double delayInSeconds = 0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[self.tbl scrollToRowAtIndexPath:[NSIndexPath indexPathForItem:self.items.count - 1 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:YES];
});
我有一個IBAction的「添加」按鈕。這是我在視頻中向項目表中添加項目的人。 – user2402616
這可能是UITableView的contentSize屬性不正確的問題。我認爲最近我遇到了同樣的問題,在添加新單元格時,將一些調試代碼放入以查看您的內容大小是否正在更新 –
內容大小的高度每次都會更新44(默認行高)。顯然寬度保持不變。高度從109開始,這是桌子開始的地方。現在只有當高度超過1024(iPad mini的高度)時纔會自動向下滾動。然而,從身高813-1033沒有新的項目出現。任何想法? – user2402616