首页 > 解决方案 > 限制子视图中的按钮触摸

问题描述

我有一个UIPageControl覆盖屏幕底部中心的:

self.pageControl.translatesAutoresizingMaskIntoConstraints = false
self.pageControl.snp.makeConstraints { (make) -> Void in
    make.height.equalTo(65)
    make.centerX.equalToSuperview()
    make.width.equalToSuperview()
    make.bottom.equalToSuperview()
}

然后我添加一个按钮 ( MDCButton : UIButton) 作为子视图:

var aButton = MDCButton()
aButton.translatesAutoresizingMaskIntoConstraints = false
pageViewController.pageControl.addSubview(aButton)

经过一些格式化后,最终结果如下所示:

在此处输入图像描述

一切正常,但触摸按钮也会向页面控件发送触摸事件。我需要限制它,以便按钮触摸事件不会传播到页面控件。

[编辑:我想我很困惑,因为根据我的代码,按钮是子视图,而不是相反。所以理论上,是页面控件接收到触摸事件并将其传播到子视图中的按钮。正确的?]

无论如何,我尝试将页面控件和按钮设置为isUserInteractionEnabled设置,但它们都以这种方式被禁用。falsetrue

我可以将两者分开(并将它们彼此相邻放置),但我无法将页面控件定位到屏幕的中心。

有任何想法吗?

标签: swiftuibuttonswift5touch-eventuipagecontrol

解决方案


推荐阅读