和洋風KAI

【Xcode】Auto Layoutを使用時、Unable to simultaneously satisfy constraints.というエラーが出たときの対処法。

Photo by: Johan Larsson

最近はもっぱらAutoLayoutでビューをつくることが多くなりましたが、その際デバッガーに以下のようなエラーが出るようになりました。

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)

引用元:Xcode 6

一応まともに動くのですが、デバッガーに大量の文字列が表示されるため、デバッグが大変になってしまいました。

いろいろな方法を試してみましたが、一向に上手くいかず・・・。

さぁどうしたもんかと、さっきもうひとググりしてみたら、こんな記事を発見。

問題が出るConstraintのPriorityを下げるとエラーが出なくなりました。 詳しいことはわかりません。

引用元:[ios] Unable to simultaneously satisfy constraints container view とエラーが出たとき – MD Blog

早速試してみたら上手くいってしまったので、その手順をメモしておきます。

Storyboard、もしくはxibファイルを選択し、エラーが出ているパーツのConstraintsのすべてを選択します。↓↓

あとは右メニューのVertical Space Constraint内のPriorityを250まで下げるだけ。↓↓

ビルドしてビューを表示確認してみましょう。今まで出ていたエラーはでなくなります。

これが正しい解決作なのかわかりませんが、とりあえずちゃんと動いているようです。同じエラーでお困りの方はぜひお試しあれ。