繁体   English   中英

捕获并停止用户交互iOS UITableViewCell的传播

[英]Capture and stop propagation of user interaction iOS UITableViewCell

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

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

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

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

您可以尝试继承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];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM