繁体   English   中英

添加subView后没有收到touchesEnded / Moved / Cancelled

[英]Not receiving touchesEnded/Moved/Cancelled after adding subView

标题或多或少都说明了一切。 为了响应touchesBegan事件,我的UIViewController重新着色并添加了一些子视图。

它永远不会收到touchesEnded 我猜是因为添加的子视图以某种方式拦截了事件。 我尝试在子视图上调用resignFirstResponder无济于事。

当我不添加子视图并且触摸事件被正常调用时,代码工作正常。

有任何想法吗?

谢谢

编辑:一些细节以及我如何修复它。

基本上我有一个带有一些子视图的主视图,当我触摸子视图时,事件将被传递到主视图,但是,在此事件中,我正在删除子视图并在其位置添加新视图。 触摸起源于不再存在的子视图这一事实意味着其余的触摸都丢失了。

我通过在主视图中覆盖hitTest:withEvent来修复此问题,以阻止对子视图进行测试

在将子视图添加为子视图之前,您是否尝试将userInteractionEnabled属性设置为NO?

您将需要使用以下内容将子视图中的触摸传递到superview:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    [super touchesBegan:touches withEvent:event];
}

暂无
暂无

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

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