Expedia app sectionIndex: как они это делают? - PullRequest
6 голосов
/ 07 июля 2011

Я заметил, что приложение Expedia (http://a5.mzstatic.com/us/r1000/027/Purple/4c/f4/6c/mzl.wcipbyyg.320x480-75.jpg) имеет настраиваемый разделIndex для UITableView в списке отелей. (Изображение прилагается)

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

Итак, как они это делают? Вертикальная последовательность кнопок? Но, в этом случае, как распознать события перетаскивания?

Я хотел бы повторить этот элемент управления, но мне нужны некоторые подсказки;)

спасибо

1 Ответ

1 голос
/ 07 июля 2011

Есть еще способы, как добиться эффекта.Предполагая, что у вас есть self.view, инициализированный из nib-файла, и это обычный UIView, вы можете поместить этот код в viewDidLoad:

- (void)viewDidLoad
{
    CGRect tvFrame = self.view.frame;
    tvFrame.origin = CGPointZero;
    UITableView* tv = [[UITableView alloc] initWithFrame:self.view.frame];
    tv.delegate = self;
    tv.dataSource = self;
    tv.showsVerticalScrollIndicator = NO;
    [self.view addSubview:tv];

    CGRect svFrame = CGRectMake(290, 10, 30, 400);
    UIScrollView* sv = [[UIScrollView alloc] initWithFrame:svFrame];
    sv.contentSize = CGSizeMake(10, 780);
    sv.showsVerticalScrollIndicator = NO;
    sv.bounces = YES;

    CGRect vFrame = CGRectMake(10, 380, 10, 20);
    UIView* v = [[UIView alloc] initWithFrame:vFrame];
    v.backgroundColor = [UIColor blueColor];
    [sv addSubview:v];

    [self.view addSubview:sv];
    [super viewDidLoad];
}

Это создаст таблицу с узким представлением прокрутки с синим прямоугольником надТаблица.Теперь вы можете прокручивать оба вида прокрутки (таблица также является видом прокрутки) независимо.

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

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