論理的なエラー
論理的なエラーは単なるバグです。 どこかに、誤った仮定があります。おそらくそれは、自動レイアウトがビューのフレームを計算する方法についての仮定です。おそらく、これは、作成した一連の制約、または設定したビューのプロパティに関する仮定です。おそらくそれは、制約がどのように相互作用して複雑な動作を作成するかについての仮定です。とにかく、何かがどこかであなたのメンタルモデルと完全には一致しません。
論理的なエラーは見つけるのが最も難しいです。他のすべての可能性を排除した後、残っているものはほとんどありませんが、論理的なエラーになるはずです。ただし、バグがあると判断した後でも、誤った仮定がどこにあるのかを正確に発見しなければなりません。
ここにはツールや段階的な説明はありません。通常、論理的なエラーの修正には、問題の特定と修正方法の解明のための実験と反復テストが含まれます。ただし、役立ついくつかの提案があります。
- 既存の制約を確認します。制約を見落としたり、誤って不要な制約を追加したりしていないことを確認してください。すべての制約が正しい項目と属性に関連付けられていることを確認してください。
- ビューフレームをダブルチェックします。予期せず伸びたり縮んだりしていないことを確認します。
- コントロールが常に固有のコンテンツサイズと一致すべき場合には、非常に高いコンテンツハグと圧縮耐性の優先度 (たとえば、999) を与えます。
- レイアウトについて想定していることを探し、明示的な制約を追加して、それらの想定が正しいことを確認します。
- 与えられた制約が、見える結果を生み出している理由を理解してみてください。あなたがそれを理解していれば、あなたはそれを修正する途中です。
- 代替の制約を試してください。通常、自動レイアウトは、同じ問題に対してさまざまな解決策を提供します。別のアプローチを試すと、問題は解決するか、少なくとも間違いを見つけやすくなります。
これは、ラベルやボタンなど、背景が見えないビューでは特に重要です。これらの項目が予期せずにサイズ変更された場合、それは明白ではないかもしれません。
サイズ変更の 1 つの症状は、ベースラインに整列したビューが正しく揃わなくなったことです。これは、ベースラインの整列が機能するのが、ビューが本来のコンテンツの高さで表示されている場合のみであるためです。ビューを垂直方向に拡大または縮小すると、テキストが不思議なことに間違った場所に表示されます。
満たされないレイアウトは、通常、見つけて修正すべき最も簡単な問題です。矛盾が発生するまで制約を追加し、矛楯を調べて修正するのを忘れないで下さい。
前:あいまいなレイアウト 次:デバッグの秘訣とヒント