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

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

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

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

Существует две константы для уровня замедления, UIScrollViewDecelerationRateNormal и UIScrollViewDecelerationRateFast. Их значения 0.998 и 0.990 в iPhone OS 3.0. Я попытался выяснить математику, которую Apple использует для медленного движения, но я подхожу пустой.

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

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

25
задан Steve Madsen 30 October 2009 в 18:35
поделиться