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 在子视图控制器中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
UITapGestureRecognizer 在属于另一个控制器的视图中不起作用
UIButton 的 Swift addTarget 在 UIView 中不起作用
UIButton 在 iOS 5.x 中不起作用,在 iOS 6.x 中一切正常