我在xib文件中有一个视图,其中包含一个按钮和其他两个视图,它们不重叠。视图文件的所有者是从UIViewController派生的自定义类。自定义视图控制器由以下代码以编程方式创建:
let sfvc = SelezioneFascicoloViewController(nibName: "SelezioneFascicoloView", bundle: nil)
viewObject.addSubview(sfvc.view)
sfvc.updateWithAttributes(attrs, inFascicolo: self.fascicolo!)
viewObject是自定义UICollectionViewCell中包含的视图。
该按钮具有连接到touchDown事件的处理程序(但任何其他事件产生相同的问题)并且它在自定义UIViewController(SelezioneFascicoloViewController)中定义 我已经为按钮标记了showsTouchOnHighlight,只是为了看它是否收到了这个事件。
嗯,视图显示正确,如果我点击按钮,我可以看到发光,但处理程序没有被调用。 层次结构中的所有视图都将UserInteractionEnabled设置为true,并且它们的大小正确,因此按钮不在superview框架之外。
此外,我在UICollectionViewController派生类中有一个包含UICollectionViewCell的UITapGestureRecognizer,如果我点击按钮外部,则会触发其处理程序,但是当我点击按钮内部时则不会触发,这是应该的。 有人可以就这类问题给我一些建议吗?
编辑:添加了截图
答案 0 :(得分:0)
感谢beyowulf。 如果我将SelezioneFascicoloViewController添加为子视图控制器,这一切都有效:
let sfvc = SelezioneFascicoloViewController(nibName: "SelezioneFascicoloView", bundle: nil)
self.addChildViewController(sfvc)
viewObject.addSubview(sfvc.view)
sfvc.didMoveToParentViewController(self)
sfvc.updateWithAttributes(attrs, inFascicolo: self.fascicolo!)