ストーリーボードの各ビュー コントローラーには、属性インスペクターで確認できる「シミュレートされたメトリック」があります。
これらのメトリックの一部は推測されます (したがって、推測されたメトリック)。
@thesystem で言及されているように、特定のビュー コントローラーが複数のセグエの宛先である場合、セグエのソース ビュー コントローラーのシミュレートされたメトリック間に違いが生じる可能性があります。これらの違いに対処するために、IB はセグエを選択して、目的のビュー コントローラーの推定メトリックを解決するときにタイを破ります。
セクション全体を削除しても安全であるという@rick-pastoorの結論inferredMetricsTieBreakers
は、IBが異なるタイブレークセグエを選択できるという点で正しいです。ただし、新しいタイブレーカーが IB で同じレイアウト結果につながるという保証はありません。*
たとえば、タイブレーク セグエに応じて、ビュー コントローラーがステータス バーの有無にかかわらず IB に表示される状況がありました。そのビューは両方のケースで 568pts の高さを維持していたため、トップ レイアウト ガイドの位置は常に変化していました。これは、トップ レイアウト ガイドに制約されたビューのフレームに対する他の望ましくない (そしてほとんど意味のない) 変更に雪だるま式に追加されました。
これらの観察に基づいて、推論されたメトリックの新しいセットと古いセットの両方を選択することはお勧めできません。代わりに、両方のセットを削除してから IB でストーリーボードを開き、結合をコミットする前に結合を解除できるようにします。タイブレーク セグエの変更による望ましくないフレームの変更を回避するには、宛先ビュー コントローラーの関連するシミュレートされたメトリックに対して "推定" 以外の値を選択します。これにより、IB が一貫したレイアウト結果を生成することが保証されます。
* ビューがアーカイブ解除された直後の初期レイアウトに依存するロジックがない限り、実行時の結果は同じである必要があります。