Я обнаружил, что самый простой способ убедиться, что вся ячейка видима, это попросить табличное представление убедиться, что прямоугольник ячейки видим:
[tableView scrollRectToVisible:[tableView rectForRowAtIndexPath:indexPath] animated:YES];
Простой способ проверить это - просточтобы поместить это в -(void)tableView:didSelectRowAtIndexPath:
- касание любой ячейки затем прокрутит ее на место, если она частично скрыта.