2011-08-05 57 views
0

我正在做一些自定義繪製我已經分類的UITableViewCell。在那裏有一個需要用戶交互工作的OpenGL ES 2.0控件...現在,如果我開始水平拖動控件響應,但只要我沿着垂直方向移動,它就開始移動表視圖的視口。如何阻止這種交互進入UITableView並將其限制在UITableViewCell中的我自己的UIView中?捕獲和停止用戶交互的iOS傳播iOS UITableViewCell

回答

1

你可以試試以子類UITableView並覆蓋以下方法

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    UITouch *touch = [touches anyObject]; 

    // if user tapped on your custom view, disable scroll   
     self.scrollEnabled = NO; 
    // end if 

    [super touchesBegan:touches withEvent:event]; 
} 

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 
    self.scrollEnabled = YES; 
    [super touchesEnded:touches withEvent:event]; 
} 

- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event { 
    self.scrollEnabled = YES; 
    [super touchesCancelled:touches withEvent:event]; 
} 
1

我不認爲你可以阻止UITableView上的用戶交互,因爲它會影響所有的子視圖。
我會嘗試將UITableView交互發送到您希望它使用它的方法。

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { 
    [MyClass myScrollDidStartMethod]; 
} 

或使用 - (空)scrollViewDidScroll:(UIScrollView的*)發送,這樣就可以對發送者的contentOffset工作取得的滾動方向(見this post相關詳細信息)

+0

謝謝。不需要子類。 –