実行時にUnable to simultaneously satisfy constraintsが表示される

表示されるログ

2020-03-15 12:34:56.000000+0900 SampleApp[3134:73465] [LayoutConstraints] 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. 
(
  “<NSLayoutConstraint:0x600002a9fd90 UIView:0x7f84a8f26c50.width == – 16   (active)>”
)
Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x600002a9fd90 UIView:0x7f84a8f26c50.width == – 16   (active)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.

起きた状況

環境はXcode Version 11.3/Swift5 です。シミュレーションおよび実機で実行。

NavigationViewのnavigationBarItemsに置いたButtonをクリックするとActionSheetを表示するだけの単純なものです。ActionSheetの中身も、短いメッセージ(ボタンが押されました)を表示し、OKボタンとキャンセルボタンを出すだけです。

ひとまずとった対応

放置。

「制約が満足できねぇ」と言われるような状況ではないですし、動作上、もたつきカクつきがあるわけではないので、放っておりました。

ただ、なんともどうにも落ち着かない。

ほら、あの、昼ご飯で食べたもやしが奥歯に挟まって取れないまま午後の仕事に入ってしまったあのあれです。取れそうで取れない。でも仕事中だから手洗いに行って取るわけにもいかない。なので、とりあえず忘れることにするあれ。

どうしても気になるので調べました

調べましたらほぼドンピシャがありましたよ……

まぁ「バグ」だと言っても、公式にアナウンスされているわけではなさそうですし、完全に真実とは言い切れないですがね。何も判らないよりかは、幾分ましです。

NSLayoutConstraint絡みの処理がSwiftUI任せになっているので、下手に調整せずに置いておくことにします。

タイトルとURLをコピーしました