首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当userInteractionEnabled = YES时,如何将触摸事件传递给superview?

当userInteractionEnabled = YES时,如何将触摸事件传递给superview?
EN

Stack Overflow用户
提问于 2014-05-06 14:23:54
回答 6查看 16.1K关注 0票数 19

我有下面的设置。

代码语言:javascript
运行
复制
+- XXXCustomControl : UIControl -------+
| A                                    |
|   +- ContentView -------------------+|
|   |                                 ||
|   |  B                              ||
|   |                                 ||
|   +---------------------------------+|
+--------------------------------------+ 

一个XXXCustomControl,它是UIControl的子类。它包含一个名为contentView的名为UIView类型的子视图,其大小小于控件的区域。这种观点有.userInteractionEnabled = YES

我需要将该属性设置为YES,因为水平滚动视图偶尔会放在其中,并且它们需要可滚动。如果superview (在我们的例子中,内容视图不允许用户交互),这是继承的y子视图。但同时,当XXXCustomControl的内容视图中不包含滚动视图时,不仅在区域A中,而且在区域B中,它都需要是可访问的。

所以我在这里有一个“利益冲突”,因为我

1)将内容视图设置为userInteractionEnabled = NO,然后可以点击A和B中内容视图区域中的空控件,但我将放在那里的滚动视图不会是可滚动的。

2)将content视图设置为userInteractionEnabled = YES,但如果控件为空,则只能点击区域A触发触摸事件。

我想出的一个想法是,默认情况下,我将属性设置为NO,当我填充contentView时,将其设置为yes。当我清除contentView时,我将属性设置为no。基本上,我希望它始终设置为yes,当它为空时,强制contentView将touchUpInside事件传递到其superview。

这个是可能的吗?

EN

Stack Overflow用户

发布于 2018-11-04 08:42:26

- Swift

代码语言:javascript
运行
复制
override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
    if <#condition#> { return true }
    else { return false }
}
票数 0
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23497457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档