Пока вы не возражаете, что «точки» являются фиксированным цветом, это действительно возможно осуществить с помощью уже предоставленных методов.Вам нужно использовать только 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
в соответствующий раздел, пока пользователь выполняет прокрутку.Опять же, вам придется немного по математике, чтобы все выстроилось идеально.
Надеюсь, что поможет!