【发布时间】:2019-04-26 21:28:49
【问题描述】:
我正在添加一个子视图(NSView),这是我的代码:
override func viewDidAppear() {
self.view.needsDisplay = true
let newView = NSView()
newView.autoresizesSubviews = true
newView.frame = view.bounds
newView.wantsLayer = true
newView.layer?.backgroundColor = NSColor.green.cgColor
view.addSubview(newView)
}
而且效果很好
你们中的任何人都知道为什么或如何使子视图与父视图一起调整大小吗?
非常感谢您的帮助
【问题讨论】:
-
您可能需要设置自动布局边界或创建一个函数来更新
viewDidLayoutSubviews中的子视图边界 -
@jessi,你能发布一个代码示例吗?
-
如果您使用界面生成器,请将子视图和新视图之间的约束设置为相同(您可以通过锚定边缘或锚定 h 和 w 来做到这一点)。以编程方式,我不会在这里重新发明轮子 - 请参阅此 SO stackoverflow.com/questions/26180822/… 中的示例
-
@jessi 您提到的链接中的那些示例只是添加约束,但如果超级视图被调整大小则无济于事
-
我不明白。只要视图约束与父视图约束相关并且您调用 layoutifneeded,父视图中的任何更改都应该级联到其子视图
标签: swift cocoa nsview nsviewcontroller xcode10.2