When loading is slow the table rows are jumping.
It seems the scroll offset is still going when new data is not arriving yet. It's clearer when you scroll faster. The old rows stays at bottom with animation. But when new rows are added, the old rows jump up instead of staying at bottom.
I'm afraid I don't understand what you mean. Can you give an example on how to reproduce this issue using the Demo project?
I tried some debugging, just find the code
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
is the key! Without it, inserting rows causes some flickers in table. And below code won't work too.
dispatch_async(dispatch_get_main_queue(), ^{
So why the 1 second pause is a must?
Is that a code in the demo?
Right.