Я задавал тот же вопрос пару недель назад.
Определенно нет общедоступного API для определения окончательного смещения Y покоя при замедлении прокрутки. После дальнейших исследований я не смог понять формулу Apple о том, как они управляют замедлением. Я собрал кучу данных по событиям прокрутки, записав начальную скорость и пройденный путь замедления, и из этого сделал приблизительные оценки того, где он может остановиться.
Моя цель состояла в том, чтобы заранее предсказать, где он остановится, и преобразовать замедление в конкретное движение в смещение. Проблема с этой техникой заключается в том, что scrollRectToVisible:animated:
всегда происходит в течение заданного периода времени, поэтому вместо скорости, которую пользователь ожидает от жеста щелчка, он либо намного быстрее, либо намного медленнее, в зависимости от силы щелчка.
Другой вариант - наблюдать замедление и ждать, пока оно замедлится до некоторого порогового значения, затем вызвать scrollRectToVisible:animated:
, но даже это трудно сделать "правильно".
Третий вариант - дождаться, пока замедление не завершится само по себе, проверить, не произошло ли его остановка с заданным кратным смещением, а затем отрегулировать, если нет. Лично меня это не волнует, так как вы либо приближаетесь к остановке, а затем ускоряетесь, либо двигаетесь к остановке в обратном направлении.