2011-05-18 85 views
3

我有一個UITableView,它將UIViews加載到它的單元格中。這些UIViews使用-touchesBegan:withEvent:等方法,這些方法都可以正常工作,讓我實現代碼以在表中移動這些子視圖。這一切工作,直到我垂直移動我的手指&開始滾動表,然後UIViews停止接收任何觸摸事件。如果有人知道如何解決這個問題,我會非常高興!非常感謝。UITableView從子視圖中抓取觸摸事件

回答

1

您的UITableView的父級UIScrollView可能會接管您的觸摸事件。

只是forward事件到您的自定義子視圖。

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    if ([touches count] == 1) 
    { 
     //Your code here than should return if it reacts to touch 

    } 
    //forwarding action: 
    [self.nextResponder touchesBegan:touches withEvent:event]; 
} 

來源:Touch forwarding on uitableview?

+0

謝謝你,但是當我開始垂直移動我的手指(即,它滾動表格並且不會將事件發送到我的子視圖)時,我仍然無法阻止抓取觸摸事件的表格。我會繼續調查並回復,如果我找到如何做到這一點。 – SomaMan 2011-05-19 09:59:25

3
-(void)ViewDidLoad 
{ 
    UITapGestureRecognizer *tapped = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped)]; 
    tapped.numberOfTapsRequired = 2; 
    [self.view addGestureRecognizer:tapped]; 
    [tapped release]; 
} 

-(void)tapped 
{ 
    NSLog(@"TAPPED"); 
} 
0

老話題,但我用同樣的問題掙扎(UITableView的一個子視圖的UITableView)。只需使用scrollEnabled = NO禁用「父」UITableView的滾動。這將停止垂直滾動。