2010-02-06 4 views
5

Как создать пользовательскую полосу прокрутки для UITableView?UITableView Custom Scrollbar

Я хочу удалить по умолчанию тот, который появляется при начале отслеживания и исчезает, когда отслеживание заканчивается. Вместо этого я хочу, чтобы в компьютерной программе был такой же: (а) он справа от экрана и постоянно виден; (b) ручная прокрутка полосы прокручивает UITableView до соответствующей позиции; (c) прокрутка UITableView будет соответствующим образом прокручивать полосу прокрутки (без отображения по умолчанию, которую предоставляет Apple).

Сложность в пунктах (b) и (c) заключается в том, что, насколько я знаю, Apple предоставляет только способы прокрутки к определенной строке/разделу, но не для прокрутки до трех четвертей пути вниз по строке , Например, если я хочу прокручивать полосу прокрутки, UITableView впоследствии будет прокручивать только верхнюю часть строки/ячейки. Метод, который я говорю о:

- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated 

Кто-нибудь реализован пользовательский полосу прокрутки в их UITableView раньше? Или кто-то может помочь мне выяснить способ решить следующие проблемы:

  • прокрутки в любую точку в UITableView вместо к началу клетки

  • извлекая панель прокрутки по умолчанию и предотвращения его от появления

  • изменения полосы прокрутки изображения/анимация/все как UITableView прокручивается

Tha НКС!


+0

Зачем вам такое поведение? Я не могу представить, где это было бы лучше индекса с секциями справа от представления таблицы (как видно, например, в приложении «Контакты»). Он также не соответствует HIG от Apple и может отклонить ваше приложение от магазина приложений. – MrMage

+1

частично ответил здесь «http://stackoverflow.com/questions/7976593/change-width-and-colour-of-scroll-bar-in-uitableview-iphone» – alekhine

ответ

2

UITableView наследует от UIScrollView, это означает, что вы можете использовать любую из существующих функций. В вашем случае

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated

должен делать эту работу. Он перемещает стол в любую позицию, которую вы хотите.

Чтобы отключить существующий индикатор прокрутки, используйте

table.showsVerticalScrollIndicator = NO; 

И добавить свои собственные, просто добавить свой собственный вид!

Смежные вопросы