Как я могу определить, хочет ли пользователь просто прокрутить, а не нажать на UIImageView внутри UIScrollView? - PullRequest
0 голосов
/ 22 мая 2009

Я реализовал UIScrollView, который содержит сетку объектов UIImageView. UserInteractionEnabled для суперпредставления и его подпредставлений имеет значение YES. Когда пользователь прокручивает и его / ее палец касается UIImageView, он сразу же распознает нажатие на это, а это не то, что мне нужно;)

Внутри объектов UIImageView у меня есть этот метод:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    if ([touch view] == self && [touch tapCount] >= 1) {
        NSLog(@"Cooooool! The user touched me!");
    }
}

Есть ли способ, которым я мог бы распознать что-то вроде "о нет, пользователь действительно хотел только прокрутить, так что не принимайте это слишком серьезно!"? По сути, мне нужно поведение домашнего экрана, когда палец может касаться значка, но когда пользователь начинает прокручивать и поднимает палец, приложение, к которому прикоснулись, не будет запущено.

1 Ответ

2 голосов
/ 22 мая 2009

UIScrollView уже реализовал это поведение для вас. Если пользователь достаточно быстр, чтобы перетащить, ваш метод touchesBegan:withEvent: просто никогда не будет вызван.

Если, с другой стороны, пользователь работает медленно и представление прокрутки пересылает касание вашему подклассу UIImageView, но затем понимает только пользователя, предназначенного для прокрутки, он вызовет метод -(void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event вашего пользовательского класса.

Просто внедрите его, и вы получите уведомление об отмене касаний.

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