2013-03-21 6 views
2

У меня есть UIView внутри UIScrollView, а UIViewControllers для этих просмотров не получают события касания. Если я просмотрю представления из прокрутки, это сработает.Сенсорные события (touchsMoved) не работают в UIViews внутри UIScrollView

UserInteraction по умолчанию ON всех просмотров, но он по-прежнему не работает!

Это должно быть возможно, и я был бы очень благодарен, если бы кто-то мог указать мне в правильном направлении!

Большое спасибо,

+0

Почему вы не используете Gesture распознаватель для того же –

+1

Мне особенно нужны прикосновенияМодульный вызов метода, какой жест будет работать для этого? – Zeeshan

+0

touchhesMoved не работает в UIScrollView – NANNAV

ответ

2

добавить следующий код в файл реализации, то прикасается переехал

@interface UIScrollView(Custom) 
    @end 
    @implementation UIScrollView(Custom) 

    -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [super touchesMoved:touches withEvent:event]; 
} 
    @end 
+0

Спасибо, что сработало. Теперь перед новыми проблемами – Zeeshan

+0

@Vinodh. Можете ли вы также упомянуть, почему это нужно сделать, чтобы новичкам было полезно понять, что происходит. Я считаю, что когда uiview добавлен в scrollview, все события касания получаются с помощью scrollview и, следовательно, touchsBegan, touchsMoved не получают вызов. Пожалуйста, поправьте меня, если я ошибаюсь. –

4

Вы можете использовать следующий метод

UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(move:)]; 
[panRecognizer setMinimumNumberOfTouches:1]; 
[panRecognizer setMaximumNumberOfTouches:1]; 
[panRecognizer setDelegate:self]; 
[yourView addGestureRecognizer:panRecognizer]; 

И справиться с этим

-(void)move:(id)sender { 

    if([(UIPanGestureRecognizer*)sender state] == UIGestureRecognizerStateChanged){ 
     // This will return you location in view 
     CGPoint currentPoint = [sender locationInView:self.view]; 

     // This will return you location in Scrollview 
     CGPoint scrollPoint = [sender locationInView:[[sender view] superview]]; 

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