swift UIButton在子视图控制器中不起作用

frebpwbc  于 2023-02-28  发布在  Swift
关注(0)|答案(2)|浏览(160)

UIButton手势在子视图控制器中无法识别。UIButton添加目标工作(按钮获取目标操作)用户交互在任何地方都打开,按钮大小正常。我尝试将childVC设置为主视图,然后一切正常,调试视图层次结构时说按钮视图超过其他元素。IDK哪里有问题。我可以提供更多代码,请告诉我。
添加目标代码:

view.buttonOfLanguageFromTranslate.addTarget(self, action: #selector(self.openDetailView(_:)), for: .touchDown)

添加下级VC代码:

let childVC = ChildVC()
    view.addSubview(childVC.view)
    
    self.addChild(childVC)
    childVC.didMove(toParent: self)
    
    childVC.view.translatesAutoresizingMaskIntoConstraints = false
    self.view.isUserInteractionEnabled = true
    self.childVC = childVC

按钮初始化:

var button: UIButton = {
    let button = UIButton()
    button.setTitle("Title", for: .normal)
    button.setTitleColor(.black, for: .normal)
    button.setTitleColor(.green, for: .selected)
    button.translatesAutoresizingMaskIntoConstraints = false
    return button
}()
cunj1qz1

cunj1qz11#

问题是

childVC.translatesAutoresizingMaskIntoConstraints = false

(in mainVC)当我删除它,childVC识别我的点击,我没有为childVC设置额外的大小,查看childVC显示正确,但不是childVC.(如我所想)

t30tvxxf

t30tvxxf2#

我也遇到了同样的问题。在我的例子中,子视图控制器上的按钮不起作用,因为我忘记将该视图控制器作为子视图添加到其父视图控制器中。
换句话说,我漏掉了这一行:

addChild(childVC)

相关问题