程序化UIControl作为IB UIView的子视图无法交互

时间:2018-06-27 05:59:14

标签: ios iphone swift uiview uicontrol

我的iPhone应用程序中的视图层次结构的正确部分出现了一些麻烦,无法获得应有的触摸事件。该代码在iOS 11中全部为Swift。

我有一个UIControl子类,该子类重写beginTracking()和endTracking()。最初,我以编程方式创建了UIView,然后将UIControl子类的实例添加为子视图。代码基本上可以归结为:

myView = UIView()
view.addSubview(myView)
// add autolayout constraints for the view
myControl = TheControl(frame: theFrame)
myView.addSubview(myControl)
// add autolayout constraints for the control

这很好用,但我想在Interface Builder中使用myView来使自动布局更加容易。因此,我摆脱了“ myView = UIView()”和“ view.addSubview(myView)”行,在IB中创建了视图,并将其连接到视图控制器中的插座。其余代码保持不变。因此,我以编程方式创建了myControl,并将其添加为myView的子视图。现在,我的myControl不再接收触摸事件。

通过在Interface Builder和代码中执行此操作,我无法弄清楚发生了什么变化。我已经在IB中的myView上打开和关闭“已启用用户交互”功能,据我所知这没有任何区别。

我在这里做什么错了?

0 个答案:

没有答案