2015-02-20 3 views
1

Попытка сделать некоторые перетаскиваемые изображения в подвид прокрутки. Но ничего не происходит. У кого-нибудь есть идеи, почему точка останова в handlePan никогда не попадает? : '(Спасибо, если и может помочьUIGestureRecognizer Метод делегата никогда не вызывается

-(void) viewWillAppear:(BOOL)animated 
{ 
    twView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"twitter"]]; 
    [self.springView addSubview:twView]; 
    [twView setFrame:CGRectMake(100, 100, 60, 60)]; 

    fbView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"facebook"]]; 
    [self.springView addSubview:fbView]; 
    [fbView setFrame:CGRectMake(200, 200, 60, 60)]; 

    g1 = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)]; 
    [twView addGestureRecognizer:g1]; 
    g1.delegate = self; 

    g2 = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)]; 
    [fbView addGestureRecognizer:g2]; 
    g2.delegate = self; 

} 

-(void)handlePan:(UIPanGestureRecognizer *)gesture 
{ 
    ... do amazing things 
} 
+0

Вам не нужно, чтобы установить делегата для этого. Вы уже назначили селектор для цели. – ugur

ответ

2

Основываясь на том, что вы здесь, это, вероятно, одна из двух вещей, либо ваш взгляд изображения не имеет userInteractionEnabled значения Да, или есть другой вид сверху. вашим образом просмотров блокирование жестов.

+0

Кажется, UIImageView имеет userInteractionEnabled, установленное false по умолчанию при создании программно. Благодаря! – Sparklellama

1

встроенного панорамирование жеста распознавани из UIScrollView подкласса, вероятно, перехватывая жест.

Убедитесь, что контроллер представления реализует протокол UIGestureRecognizerDelegate и осуществлять

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 
{ 
    return YES; 
} 
+0

Этот ответ также полезен, кажется, у меня было несколько проблем. К сожалению, маркировка двух вещей как правильная, кажется, не работает (неудивительно), поэтому у upvote будет 2 do :( – Sparklellama

0

Другая вещь, которая помогает мне, на экземпляре жест распознаватель набор

UITapGestureRecognizer *loginTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(loginButtonAction)]; 
loginTap.delegate = self; 
[self.loginButton setUserInteractionEnabled:YES]; 
[self.loginButton addGestureRecognizer:self.loginTap]; 

И после назначения делегата для себя, он будет получать вызов методов делегата

Смежные вопросы