UITableView с пользовательским индексом - PullRequest
2 голосов
/ 01 января 2012

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

пример http://img705.imageshack.us/img705/8573/57screenshot20111231at9.png

В моем табличном представлении нет разделов, поэтому я хочу прокрутить одну «страницу» вниз или вверх при нажатии одной из маленьких точек. Также я хочу, чтобы пользователь мог быстро пролистывать представление, чтобы быстро перемещаться по страницам, как и в стандартном индексе табличного представления.

Буду признателен, если вы предоставите мне пример чего-то похожего на это или хотя бы несколько рекомендаций о том, с чего начать.

1 Ответ

4 голосов
/ 01 января 2012

Пока вы не возражаете, что «точки» являются фиксированным цветом, это действительно возможно осуществить с помощью уже предоставленных методов.Вам нужно использовать только 2 метода:

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView;

- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index;

Вам также понадобится UIImageView, который содержит прозрачное изображение, которое у вас есть над выбранной точкой.

В первом методеверните NSArray для формы: [NSArray arrayWithObjects:@".", @".", ..., @".", nil];.Это будет введено в «точки» на боковой панели, где каждая точка представляет 1 часть UITableView.Когда пользователь нажимает на одну из точек, UITableView переместится в соответствующий раздел.Поскольку вы хотите, чтобы каждый раздел был длиной в 1 страницу, просто разделите данные соответствующим образом.

Что касается второго метода, то здесь вы настраиваете кадр UIImageView, удерживающий прозрачное изображение, которое покрывает выбранныйточка.Просто измените свойство .frame., чтобы оно соответствовало новому выбранному разделу.Вам понадобится немного математики, чтобы выстроить это в ряд, но это довольно просто.

Вам также нужно будет использовать методы UIScrollViewDelegate для управления перемещением прозрачного изображения, пока пользовательпрокрутки.Это:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView;

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;

Это позволит вам перемещать UIImageView в соответствующий раздел, пока пользователь выполняет прокрутку.Опять же, вам придется немного по математике, чтобы все выстроилось идеально.

Надеюсь, что поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...