2013-03-21 77 views
2

我有UIView裏面UIScrollView,和UIViewControllers這些意見是沒有接收觸摸事件。如果我將視圖移出滾動視圖,那麼它就可以工作。觸摸事件(touchesMoved)不工作UIScrollView裏面UIScrollView

UserInteraction是所有視圖的默認ON,但它仍然不起作用!

這一定是可能的,如果有人能指引我朝着正確的方向,我會非常感激!

非常感謝,

+0

你爲什麼不使用手勢識別器相同 – 2013-03-21 07:00:54

+1

我特別需要touchesMoved方法調用,哪個手勢可以爲此工作? – Zeeshan 2013-03-21 07:03:21

+0

touchesMoved不工作在UIScrollView – NANNAV 2013-03-21 07:05:41

回答

2

下面的代碼添加到實施文件,然後觸摸移動

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

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

感謝它的工作。現在面臨新問題 – Zeeshan 2013-03-21 07:32:58

+0

@Vinodh。你還可以提一下,爲什麼要這樣做,這樣才能讓新手理解正在發生的事情。 我相信,當uiview被添加到滾動視圖時,所有觸摸事件都會被滾動視圖接收,因此touchesBegan,touchesMoved不會被調用。如果我錯了,請糾正我。 – 2014-12-04 11:14:50

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]]; 

    } 
} 
相關問題