Ios Swift-通过编程创建的UIButton不';t触发触摸事件
我以编程方式创建了一个按钮,并希望添加一个触摸事件处理程序。我已经尝试了我在网上找到的所有技巧,但所需的功能从未触发Ios Swift-通过编程创建的UIButton不';t触发触摸事件,ios,swift,events,uibutton,Ios,Swift,Events,Uibutton,我以编程方式创建了一个按钮,并希望添加一个触摸事件处理程序。我已经尝试了我在网上找到的所有技巧,但所需的功能从未触发 upgradeNowView = UIButton() upgradeNowView.setTitle("Upgrade", forState: .Normal) upgradeNowView.contentMode = UIViewContentMode.ScaleToFill upgradeNowView.frame = CGRect(x: upgradeNowView.fr
upgradeNowView = UIButton()
upgradeNowView.setTitle("Upgrade", forState: .Normal)
upgradeNowView.contentMode = UIViewContentMode.ScaleToFill
upgradeNowView.frame = CGRect(x: upgradeNowView.frame.minX, y: -50 , width: 320, height: 50)
upgradeNowView.userInteractionEnabled = true
upgradeNowView.sendActionsForControlEvents(.TouchUpInside)
upgradeNowView.addTarget(self, action: #selector(MainViewContainer.upgradeTapped(_:)), forControlEvents: .TouchUpInside)
side_menu_controller?.view.addSubview(upgradeNowView)
并定义了这一点
func upgradeTapped(sender: UIButton)
{
UpgradeViewController.openUpgrade()
}
但这根本就没人打电话。任何帮助都将不胜感激。您需要在
侧菜单\u控制器
实例的类中定义upgradeTapped
函数。我猜,这是SideMenuController
类。我发现这是因为我将按钮放在视图旁边,但超出了它的边界(就在顶部):
有两种解决方法:
- 在父视图的边界内移动按钮,或
- 如前所述,句柄通过覆盖“hitTest”接触视图外部
MainViewContainer
上,按钮位于side\u菜单\u控制器中
upgradeNowView.frame = CGRect(x: upgradeNowView.frame.minX, y: -50 , width: 320, height: 50)