gpt4 book ai didi

macos - 自动布局错误 - 无法同时满足约束

转载 作者:行者123 更新时间:2023-12-03 17:10:19 25 4
gpt4 key购买 nike

这个问题与我之前提出的如何添加在单独的 xib 中定义的 View here 的问题相关。 。我仍在努力解决这个问题,现在我遇到了此布局特定错误,因此我认为最好提出一个新问题。

我有 2 个 xib,我正在尝试将 xib1 中的 View 插入到 xib2 上的 NSView 占位符中,并且我希望在调整 View 大小时调整 xib1 中的 View 大小。

这是我尝试设置左/右约束的代码。

    let placeholder: NSView = self.m_viewPlaceHolder;
let insert: NSView = UserView01().view;
insert.frame = NSRect(x: 0, y: 0, width: placeholder.frame.width, height: placeholder.frame.height);
placeholder.addSubview(insert);

NSUserDefaults.standardUserDefaults().setBool(true, forKey: "NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints");
let hor = NSLayoutConstraint.constraintsWithVisualFormat("H:|-[view]-|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["view" : insert]);
NSLayoutConstraint.activateConstraints(hor);

这是我在跟踪中看到的错误

2016-01-12 20:49:09.307 SubView01[9240:308241] Unable to simultaneously satisfy constraints:
(
"<NSLayoutConstraint:0x608000087800 H:|-(NSSpace(20))-[NSView:0x608000120500] (Names: '|':NSView:0x6080001206e0 )>",
"<NSAutoresizingMaskLayoutConstraint:0x6000000842e0 h=--& v=&-- H:|-(0)-[NSView:0x608000120500] (Names: '|':NSView:0x6080001206e0 )>"
)

Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x608000087800 H:|-(NSSpace(20))-[NSView:0x608000120500] (Names: '|':NSView:0x6080001206e0 )>

Set the NSUserDefault NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints to YES to have -[NSWindow visualizeConstraints:] automatically called when this happens. And/or, break on objc_exception_throw to catch this in the debugger.
2016-01-12 21:00:19.409 SubView01[9240:308241] Clicked on overlapping visualized constraints: (
"<NSLayoutConstraint:0x608000087800 H:|-(NSSpace(20))-[NSView:0x608000120500] (Names: '|':NSView:0x6080001206e0 )> (Actual Distance - pixels):0",
"<NSAutoresizingMaskLayoutConstraint:0x6000000842e0 h=--& v=&-- H:|-(0)-[NSView:0x608000120500] (Names: '|':NSView:0x6080001206e0 )> (Actual Distance - pixels):0"
)

我在设计器中添加的唯一约束是主窗口占位符以及用户 View 标签上的左/上/右/下 0 像素约束。

最佳答案

与 View 的隐式自动调整大小掩码存在冲突。

两个选项:

  1. 通过关闭自动布局、更改蒙版并再次打开自动布局,将蒙版设置为 Interface Builder 中合适的内容,或者取消选中将自动调整大小蒙版转换为约束(如果有)。

  2. 以编程方式执行相同的操作,或者设置掩码

    view.autoresizingMask = [...]

    或禁用translatesAutoresizingMaskIntoConstraints

    view.translatesAutoresizingMaskIntoConstraints = false

关于macos - 自动布局错误 - 无法同时满足约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34758795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com