0

我正在做一些自定义绘制我已经子类化的 UITableViewCell。那里有一个需要用户交互才能工作的 OpenGL ES 2.0 控件……现在,如果我开始水平拖动,控件会响应,但是一旦我进入垂直方向,它就会开始移动表格视图的视口。如何阻止这种交互转到 UITableView 并将其限制为 UITableViewCell 中我自己的 UIView?

4

2 回答 2

1

我认为您不能阻止 UITableView 上的用户交互,因为它会影响所有子视图。
我会尝试将 UITableView 交互发送到您希望它使用它的方法。

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

或使用 - (void)scrollViewDidScroll:(UIScrollView *)sender 以便您可以处理发件人的 contentOffset 以获取滚动方向(有关此内容的更多信息,请参阅此帖子)

于 2011-08-07T13:32:49.187 回答
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];
}
于 2011-08-07T13:43:32.360 回答