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

Posted

技术标签:

【中文标题】UIButton 在子视图控制器中不起作用【英文标题】:UIButton doesn't work in child view controller 【发布时间】:2020-12-04 01:13:50 【问题描述】:

UIButton 手势在子视图控制器中无法识别。 UIButton 添加目标工作(按钮获取目标动作) 用户交互无处不在,按钮大小还可以。我尝试将 childVC 设置为 main,然后一切正常,调试视图层次结构表示按钮视图优于其他元素。 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
()

【问题讨论】:

【参考方案1】:

问题出在

        childVC.translatesAutoresizingMaskIntoConstraints = false

(在 mainVC 中) 当我删除它时,childVC 会识别我的水龙头 而且我没有为 childVC 设置额外的大小,childVC 的视图显示正确但 childVC 不正确。 (我认为)

【讨论】:

以上是关于UIButton 在子视图控制器中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式在子视图中创建 UIButton 不起作用

UITapGestureRecognizer 在属于另一个控制器的视图中不起作用

UIButton 的 Swift addTarget 在 UIView 中不起作用

UIButton 在 iOS 5.x 中不起作用,在 iOS 6.x 中一切正常

UIButton 在 collectionView 单元格中不起作用

UiButton 点击​​在 UIView 上不起作用