18

实际上使用xib集成了相机应用程序,因为我将uiview放在一个视图上,然后我放置了imageview,再次在imageview上查看以进行裁剪。然后运行我得到这个错误的项目。

2013-07-23 12:45:49.936 Camera_App1 [30668:907] 无法同时满足约束。以下列表中的至少一个约束可能是您不想要的。试试这个:(1)查看每个约束并尝试找出您不期望的;(2) 找到添加了一个或多个不需要的约束的代码并修复它。(注意:如果您看到不理解的 NSAutoresizingMaskLayoutConstraints,请参阅 UIView 属性 translatesAutoresizingMaskIntoConstraints 的文档)

(
    "<NSAutoresizingMaskLayoutConstraint:0x1f5b3d10 h=--& v=--& V:[UIView:0x1f5a2f70(460)]>",
    "<NSLayoutConstraint:0x1f5a3c80 V:[UIView:0x1f5a31b0]-(385)-|   (Names: '|':UIView:0x1f5a3120 )>",
    "<NSLayoutConstraint:0x1f5a3f80 V:|-(0)-[UIView:0x1f5a3120]   (Names: '|':UIView:0x1f5a2f70 )>",
    "<NSLayoutConstraint:0x1f5a3f40 V:[UIView:0x1f5a3120]-(63)-|   (Names: '|':UIView:0x1f5a2f70 )>",
    "<NSLayoutConstraint:0x1f5a3bc0 V:|-(61)-[UIView:0x1f5a31b0]   (Names: '|':UIView:0x1f5a3120 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x1f5a3c80 V:[UIView:0x1f5a31b0]-(385)-|   (Names: '|':UIView:0x1f5a3120 )>

Break on objc_exception_throw to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2013-07-23 12:45:58.697 Camera_App1[30668:907] media type=public.image
2013-07-23 12:45:58.701 Camera_App1[30668:907] global=public.image
2013-07-23 12:45:58.858 Camera_App1[30668:907] Unable to simultaneously satisfy constraints.
    Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSLayoutConstraint:0x1f5a3c80 V:[UIView:0x1f5a31b0]-(385)-|   (Names: '|':UIView:0x1f5a3120 )>",
    "<NSLayoutConstraint:0x1f5a3f80 V:|-(0)-[UIView:0x1f5a3120]   (Names: '|':UIView:0x1f5a2f70 )>",
    "<NSLayoutConstraint:0x1f5a3f40 V:[UIView:0x1f5a3120]-(63)-|   (Names: '|':UIView:0x1f5a2f70 )>",
    "<NSLayoutConstraint:0x1f5a3bc0 V:|-(61)-[UIView:0x1f5a31b0]   (Names: '|':UIView:0x1f5a3120 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x1f53a430 h=--& v=--& V:[UIView:0x1f5a2f70(460)]>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x1f5a3c80 V:[UIView:0x1f5a31b0]-(385)-|   (Names: '|':UIView:0x1f5a3120 )>

Break on objc_exception_throw to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
4

6 回答 6

33

错误就是它所说的,并为您开始调试提供了非常清晰的说明。有两个冲突的约束。每个都指示 Auto Layout 运行时执行与另一个相矛盾的操作。

如果您以编程方式创建和添加视图,那么 Auto Resizing 属性很可能已自动转换为 Auto Layout 约束。

因此,首先要尝试的是,使用您以编程方式创建的视图,通过设置禁用它:

myProgrammaticView.translatesAutoresizingMaskIntoConstraints = NO;
于 2013-07-23T07:35:52.673 回答
4

我遇到了同样的问题,经过数小时的搜索,原来问题是因为通话中或热点状态栏被切换,(热点已打开,正在通话中),为了解决问题,我在 appdelegate 中添加了:

    func application(application: UIApplication, willChangeStatusBarFrame newStatusBarFrame: CGRect) {
    let windows = UIApplication.sharedApplication().windows

    for window in windows {
        window.removeConstraints(window.constraints)
    }
}
于 2015-11-23T18:32:13.680 回答
2

试试这个步骤,它对我有帮助。

选择您的对象 > 编辑器 > 解决自动布局问题 > 重置为建议的约束

在此处输入图像描述

于 2018-07-31T16:10:38.903 回答
1

我知道这个线程很老,但这是我的经验和解决方案。

选择视图(UILabel、UIImage 等)编辑器 > 固定 >(选择...)到 Superview 编辑器 > 解决自动布局问题 > 添加缺少的约束

此错误是您添加的约束之间的冲突。删除不需要的约束。不要在同一方向和类型上使用多个约束。

在此处输入图像描述

我建议您使用 SnapKit。它是一个自动布局框架,使用起来非常方便

 import SnapKit

 var label = UILabel()

 label.snp_makeConstraints { (make) -> Void in
    make.centerX.equalTo(0)
    make.centerY.equalTo(0)
    make.width.equalTo(30)
    make.height.equalTo(30)
 }

https://github.com/SnapKit/SnapKit希望这有帮助:)

于 2016-08-01T08:05:21.490 回答
0

就我而言,由于导航栏,我收到了这个错误。添加新 UIViewController 导致此错误。

我删除了旧的导航栏,然后通过转到 EditorEmbed InNavigation Controller重新添加它。

于 2019-02-16T18:16:43.227 回答
-2

我重置为建议的约束并解决了问题,请参见此处。

选择您的对象 > 编辑器 > 解决自动布局问题 > 重置为建议的约束

于 2019-08-16T01:10:09.507 回答