Прогнозирование смещения покоя в UIScrollView после замедления

Я хотел бы иметь возможность предсказать окончательное смещение покоя в UIScrollView после жеста щелчка. Он не должен быть точным по пикселям, но достаточно близким, чтобы пользователь не чувствовал разницы (то есть он не двигался чрезмерно меньше или больше, чем он привык).

Я знаю, кто-то спросит, поэтому: почему? У меня есть элемент управления в виде таблицы в UIScrollView. Я хотел бы сделать так, чтобы самый верхний элемент меню полностью отображался и располагался в верхней части UIScrollView. Функция подкачки UIScrollView не совсем то, что я хочу, потому что сильный щелчок не пролетает кратные границы представления.

Обработать обычные сенсорные события достаточно просто. НаtouchesEnded:withEvent:Я могу прокрутить до ближайшего полного пункта меню. Трудная часть - замедление.

Есть две константы для скорости замедления,UIScrollViewDecelerationRateNormal а такжеUIScrollViewDecelerationRateFast, Их значения 0,998 и 0,990 в iPhone OS 3.0. Я пытался выяснить математику, которую Apple использует для замедления движения, но я выхожу пустой.

Если я могу с некоторой точностью предсказать окончательное смещение покоя, то в начале замедления я могу просто использоватьscrollRectToVisible:animated: чтобы перейти к смещению с помощью пункта меню, расположенного заподлицо с верхом границ вида.

Знают ли люди, склонные к математике, что Apple может делать во время замедления? Должен ли я собрать кучу событий замедления, построить их график и придумать что-нибудь близкое?

Ответы на вопрос(3)

Ваш ответ на вопрос