天天看點

自動布局 Autolayout 報錯:Unable to simultaneously satisfy constraints.

在使用自動布局時,不斷的報下面的錯誤:

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:0x8c67c10 V:[UIButton:0x8c67320]-(2)-|   (Names: '|':UIView:0x8c65ad0 )>",

    "<NSAutoresizingMaskLayoutConstraint:0x8e166b0 h=--& v=--& UIButton:0x8c67320.midY ==>",

    "<NSAutoresizingMaskLayoutConstraint:0x8e166e0 h=--& v=--& V:[UIButton:0x8c67320(0)]>",

    "<NSAutoresizingMaskLayoutConstraint:0x8e130d0 h=-&- v=-&- UIView:0x8c65ad0.height == PicCollectionViewCell:0x8c65a00.height>",

    "<NSLayoutConstraint:0x8e13710 'UIView-Encapsulated-Layout-Height' V:[PicCollectionViewCell:0x8c65a00(100)]>"

)

Will attempt to recover by breaking constraint 

<NSLayoutConstraint:0x8c67c10 V:[UIButton:0x8c67320]-(2)-|   (Names: '|':UIView:0x8c65ad0 )>

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.

這種錯誤,一般就兩個原因:1,你的限制的确設定錯誤;2,忘記設定控件的:setTranslatesAutoresizingMaskIntoConstraints 等于NO 。

我就屬于第二種情況,其實錯誤資訊裡也寫的很清楚了,NSAutoresizingMaskLayoutConstraint:0x8e166e0 。