13

私はオートレイアウトが概念として大好きなのと同じくらい、実装の詳細につまずいているようです。それらの 1 つは、特定のサブビューに適用される制約を保存するのに本当にうんざりしているので、後で削除して置き換えることができるということです。

たとえば、最初にビューを追加するときに、次の制約を与えることがあります。

@"H:[view(==200)]|"

幅 200 で、画面の右側に配置します。後で、幅 400、サイズ 200 のギャップにしたい場合はどうすればよいでしょうか。新しいレイアウトは非常にシンプルですが、古いレイアウトとはまったく矛盾しています。

@"H:[view(==200)]-(200)]|"

したがって、制約の配列を保持する必要があるため、後でそれらを使用して制約を削除できます。私がどこかに欠けているより簡単な解決策がなければなりません残念ながら、[ビューの制約] の明らかな解決策は意味がありません。制約を特定のビューに直接適用するのではなく、そのスーパービューに適用するからです。(さらに、それ自体のオブジェクトが適切に収まるようにする自動レイアウト制約で満たされる傾向があります-位置を調整するためだけに削除したいものではありません!)そして、利用可能な [view ConstraintForSubview:] オプションはないようです.

私は盲目ですか?何か足りない?後で修正できるように、既存の制約の辞書を渡す必要が本当にあるのでしょうか?

4

1 に答える 1