Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When attempting to tap offscreen table elements, after
[tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionNone animated:animationEnabled]
is called, the scrolling never actually occurs before the call to[tableView cellForRowAtIndexPath:indexPath]
, which will always returnnil
for offscreen table cells. A yield could be inserted in there, but for large tables, that would be an enormous amount of time.The spinning of the runloop after that block only allows the final call to
scrollToRowAtIndexPath
to be executed, so the code will only succeed if the cell is in view initially, or it's in the final scrolled section in the table. This code, as it was, would never succeed if the cell being sought was above the initially scrolled area of the table.Switching the
scrollToRowAtIndexPath
call to[tableView scrollRectToVisible:sectionRect animated:NO]
is more instantaneous, requires no yield, and works for cells above AND below the currently-scrolled portion of the table.Plus, the final call to
[tableView scrollRectToVisible:initialPosition animated:NO]
will succeed in moving back to the initial position for all cases, essentially instantaneously.