Я не пробовал это, но вот идея. Допустим, N = 100, так как у вас есть 100 строк. Что мы сделаем, так это скажем, что у таблицы 200 строк, но мы будем прокручивать пользователя в диапазоне 50-150.
Скажите (представление таблицы), что вы удвоили это количество строк, поэтому для numberOfRows верните 2 * N. В cellForRowAtIndexPath всегда возвращайте ячейку, соответствующую (строке% N).
Теперь инициализируйте таблицу, прокручиваемую до строки N (вместо 0), чтобы пользователь мог прокручивать в любом направлении.
Когда пользователь прокручивает таблицу, в конечном итоге он запрашивает строку N + (N / 2), когда это происходит, отправьте scrollToRowAtIndexPath: atScrollPositionanimated: для прокрутки к строке N Это переместит таблицу обратно на N (то есть: от 150 до 50), той же ячейке, но мы никогда не выйдем за пределы таблицы таким образом.
Сделайте то же самое, когда табличное представление запрашивает ячейку в строке N- (N / 2) для прокрутки вверх.
Вам придется иметь дело с особым случаем, когда N ячеек вписывается в вид с дополнительной комнатой, то есть: что, если N было 1?