UIScrollView с UITapGestureRecognizer и UIPageControl - PullRequest
0 голосов
/ 26 февраля 2011

Я создаю горизонтальную прокрутку таблицы, содержащую изображения .У меня отлично работает свип-функция, и я могу добавлять изображения в scrollView, как в cellForRowAtIndexPath:

scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, tv.frame.size.width, 78)];
    [scrollView setContentSize:CGSizeMake(700, 78)];
    UIImage *footImage = [UIImage imageNamed:@"Foot.png"];
    UIImageView *footImageView = [[UIImageView alloc] initWithImage:footImage];
    footImageView.frame = CGRectMake(0, 0, 80, 78);
    footImageView.userInteractionEnabled = YES;
    [scrollView addSubview: footImageView];

    UIImage *handImage = [UIImage imageNamed:@"Hand.png"];
    UIImageView *handImageView = [[UIImageView alloc] initWithImage:handImage];
    handImageView.frame = CGRectMake(90, 0, 80, 78);
    handImageView.userInteractionEnabled = YES;
    [scrollView addSubview: handImageView];

    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(highlightImage)];
    [scrollView addGestureRecognizer:tapGesture];
    NSLog(@"tapGesture added to scrollView");


    [[cell contentView] addSubview:scrollView];

    pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, 50, tv.frame.size.width, 50)];
    [pageControl setNumberOfPages:4];
    [[cell contentView] addSubview:pageControl];

Мой tapGesture регистрируется с помощью селектора, hightlightImage,и просто регистрируя, что он вызывает этот метод правильно.

- (void) highlightImage
{
    NSLog(@"tapping tapping");
}

То, для чего я ДЕЙСТВИТЕЛЬНО работаю, это способность выделять / выбирать эти изображения, если их коснуться, и выделите / отмените выбор их, если снова коснуться.У меня будет другая кнопка на экране, которая будет переходить к следующей странице (не имеет значения здесь).

Я иду по правильному пути здесь?Очевидно, я буду заполнять NSArray из UIImages и заполнять scrollView таким образом, но пока просто выплюнуть его.Если бы кто-то мог дать мне какое-то руководство или пример того, как сделать каждую кнопку отдельно выбираемой / отменяемой, это было бы БОЛЬШОЙ:)

1 Ответ

2 голосов
/ 27 февраля 2011

Используйте UIButton вместо UIImageView.

Он имеет встроенную selected функциональность.

избавьтесь от своих жестов и добавьте highlightImage в качестве действия для каждой кнопки.

превратите ваш highlightImage в highlightImage:(id)sender

Отправитель должен быть кнопкой, чтобы вы могли просто сделать

[отправитель setSelected: YES];

...