如何在MacOS上使用Swift中的自动布局将视图集中在x轴上



嗨,我只是想使用自动布局使childViewNSViewControllerview的x轴为中心。我正在做以下事情:

override func viewWillAppear()
{
super.viewWillAppear()
let childView = PagesView.init(frame: CGRect(x: 0, y: 0, width:100, height: 100))
childView.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(childView)
childView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
}

childView甚至没有出现在屏幕上。当我删除最后一行时,它的位置是0,0。所以最后一行的某些东西导致了它失控,我不知道为什么?我在iOS上使用了完全相同的逻辑,它运行得很好。

所有视图都应该有约束来定义其位置和大小。

// This would create dimension constraints if your class cannot already infer them
childView.widthAnchor.constraint(equalToConstant: 100).isActive = true
childView.heightAnchor.constraint(equalToConstant: 100).isActive = true

您还需要指定一个垂直定位约束,以便视图有足够的信息显示。

childView.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true

最新更新