В сообщении Создание длинных прокруток на iPhone не сосать, Аза Раскин описывает альтернативный элемент управления прокруткой, который лучше подходит для длинные страницы:
Не важно, чтобы полоса прокрутки "оставалась на некоторое время" для ее активации; Я в порядке, просто прокручивая правый край экрана iPhone, чтобы схватить ручку прокрутки. Идея состоит в том, что если я перетащил ручку на 3/4 пути вниз на физический экран, я был бы на 3/4 пути вниз на странице.
В приложении Dropbox iPhone (это здорово, кстати!) имеет именно такую полосу прокрутки для длинных PDF-документов. Обычная прокрутка выполняется путем перетаскивания в любом месте, кроме ручки; перетаскивание рукоятки перемещает представление в это место. Это, похоже, реализовано "с нуля", так как я не думаю, что SDK достаточно гибкий, чтобы настроить поведение существующей полосы прокрутки.
Однако Dropbox использует собственные средства просмотра документов для отображения документов на iPhone, поэтому каким-то образом они добавляют к нему функциональность полосы прокрутки. См. Ручку полосы прокрутки? Вы можете перетащить это, чтобы быстро получить где-то еще в документе.
Эта концепция очень похожа на работу столбцов в UITableView (т.е. Contacts.app); индекс отображается в виде полосы в правой части таблицы (например, "от" до "z" ), и вы можете коснуться определенной метки, чтобы перейти к целевому разделу. В этом случае, однако, очень длинная страница не имеет разделов, и она должна работать для прокрутки общего назначения, а не для перехода к разделам.
Итак, как я могу реализовать этот метод прокрутки? Я ищу общие идеи и конкретные детали реализации. Мне также интересно, существует ли реализация с открытым исходным кодом (это похоже на проблему общего назначения/решение).