【发布时间】:2017-09-10 21:50:51
【问题描述】:
我有一个具有三个子视图的自定义 UIControl。每个子视图,我添加一个目标:
button.addTarget(self, action: #selector(buttonTapped(clickedBtn:)), for: .touchUpInside)
在那个函数buttonTapped中,它会做一些特殊的动画来做一些过渡(它模仿分段控制)。
现在,在这个自定义 UIControl 所在的 ViewController 中,必须知道它何时被触摸。我为自定义 UIControl 创建了一个与触摸事件交互的 @IBAction 函数。
问题是,这是不可能的(据我所知)。如果我将目标触摸事件添加到子视图,则不会调用父触摸事件。要让父视图调用@IBAction 函数,我必须设置所有子视图的 setUserInteractiveEnabledtotrue`。当我这样做时,不会调用子视图的触摸事件函数。
我需要调用两个触摸事件函数。我怎样才能做到这一点?或者解决这个问题的最佳方法是什么?
【问题讨论】:
-
能否将整个自定义控件设为
IBAction,然后在.touchUpInside中确定哪个子视图被点击了?
标签: ios swift cocoa-touch uicontrol