【发布时间】:2016-01-12 06:00:10
【问题描述】:
我正在尝试使用 Xcode 7 / Swift 2.0 将带有控制器的 UserView 添加到视图中。
我无法弄清楚如何使用 Interface Builder 执行此操作,而是添加了一个 NSView 作为占位符视图,然后在代码中添加该视图。
是否可以使用 Interface Builder 来做到这一点?
在图片中,橙色是占位符,绿色是用户视图:
在代码中添加视图时,我假设我必须添加约束。我尝试使用下面的constraintsWithVisualFormat,但是当我添加它时,视图无法调整大小。我认为这可能与优先级有关。
如何让绿色子视图填充占位符容器并调整大小?
override func windowDidLoad() {
super.windowDidLoad()
print("MainWindowController.windowDidLoad");
let view = UserView01();
self.m_viewPlaceHolder.addSubview(view.view);
let hor = NSLayoutConstraint.constraintsWithVisualFormat("H:|-10-[view]-10-|", options: .AlignAllLeft, metrics: nil, views: ["view" : view.view]);
let ver = NSLayoutConstraint.constraintsWithVisualFormat("V:|-10-[view]-10-|", options: .AlignAllLeft, metrics: nil, views: ["view" : view.view]);
NSLayoutConstraint.activateConstraints(hor);
NSLayoutConstraint.activateConstraints(ver);
}
【问题讨论】:
-
设置view.view的frame等于NSMakeRect(0,0,m_viewPlaceHolder.frame.size.width,m_viewPlaceHolder.frame.size.height)。
标签: cocoa autolayout swift2 xcode7 nslayoutconstraint