23

1 年前、自動レイアウトの利点に関する Apple WWDC 基調講演をいくつか見たことがありますが、実際のプロジェクトでそれらを試してみたところ、ストーリーボード上の UI 要素を少しでも動かすと、制約の半分が壊れてしまうことがわかりました。自動レイアウトのすべての利点を無効にします。

これまで、私は Springs & Struts をうまく利用してきました。KVO と組み合わせて、ビューのフレームパスを観察し、回転の再調整のほとんどを、ほんの数行のコードで適切に処理しました。

iOS 7 が登場した今、私は質問を得ました: iOS 7 アプリにのみ Springs & Struts をうまく利用し続け、Auto Layout の使用を避けることはできますか? それとも、そうすることで何かを失っていますか? さまざまなシナリオで自動レイアウトを使用するスキルを学び、習得するには、おそらく数日かかるので、議論のあるアドバイスをいただければ幸いです。


解決済み: Max の回答のおかげで、自動レイアウトについて掘り下げ始めました。彼の答えは正しいですがNull、実際にはiOS 7でSpringsとStrutsを問題なく使用できます.Auto-Layoutは強力です.

どうやらXcode 5では、次のことが修正されています。

  • 制約を削除するために、実際には古代のシャーマニックダンス オブ レインを実行する必要はありません。これを削除すると、レイアウトが警告モードになり、自動レイアウトを機能させるために解決する必要がある問題が示されます。

  • 物を動かしても、制約は変わりません。Interface Builder のビュー フレームのみが変更されます。

  • Interface Builder のフレームが、レイアウト制約フレームで計算されたフレームと実際に異なる場合、Interface Builder はその要素の実行時フレームを赤い点線で示します。最後に、それは正しく行われます。ありがとう、アップル。

  • これは、Xcode 5 でそのすべてを利用する方法を示す WWDC 2013 セッションへのリンクです。それを表示するには、Apple 開発者アカウントが必要です。

したがって、私の選択は自動レイアウトです。皆さん、ありがとうございます。

4

3 に答える 3

23

Auto Layout は未来であり、Springs & Struts は過去です。Springs & Struts を使い続けると、新しい標準である Auto Layout が普及するにつれて不利になります。

また、Springs & Struts は複雑なビューには効果的ではありません。自動レイアウトはかなり強力です。

iOS 7 はまだ初期の段階であり、その影響が正確にはわかりませんが、iOS 7 の UI 移行ガイドでは、自動レイアウトを使用すると移行プロセスが容易になると具体的に述べられています。

アプリで自動レイアウトを使用すると、作業が簡単になります。Xcode 5 では、自動レイアウトにより、アプリが新しい UI 要素のメトリックに対応し、テキスト サイズの動的な変更に適切に対応できるようになります。自動レイアウトは、iOS 6 アプリを移行する場合、または iOS 6 と iOS 7 の両方をサポートする必要がある場合に特に役立ちます。

自動レイアウトを使用していない場合、特にアプリの複数のバージョンをサポートする必要がある場合は、今が開始するのに最適な時期です。手動またはプログラムによるレイアウト手法を使用する場合は、テキスト サイズが変更されたときにレイアウトが適切に調整されるようにする必要があります。

個人的には、Xcode 4.6.3 から Auto Layout を使用しています。最初の学習曲線は苦痛ですが、その後は本当に楽しくなります。Springs & Struts に戻ったり、フレームを使用して手動でメトリックを計算したりすることは絶対にありません。

于 2013-09-11T15:43:04.987 に答える
4

はい、引き続き iOS7 で Springs & Struts を使用できます。ビューを修正するのに苦労しましたが、ベータ版アプリで動作しますが、最終的には動作します。

以下を読んで検討してください。

アプリケーションですでに自動レイアウト (レイアウトをユーザーの表示デバイスの解像度と方向に自動的に調整する開発ツール) を使用している場合、iOS7 への移行は非常に簡単です。そうでない場合は、開始する必要があるかどうかを評価することをお勧めします。開始する必要がある最大の理由は、iOS7 ではユーザーがテキストのサイズを変更できるようになったことです。アプリケーションは、レイアウトを更新して目的のテキスト サイズをサポートすることで、これを尊重することが期待されます。「Springs and Struts」またはプログラムによるレイアウトを使用している場合は、レイアウトを正しくするためにビューの操作にかなりの時間を費やす必要があります。これはもちろん、iOS6 をサポートするかどうかの決定にも影響を与える可能性があります。

ここを参照してください。

于 2013-09-11T10:50:04.803 に答える
1

制約の使用方法がより更新されているため、自動レイアウトを使用する必要があります

于 2014-11-30T22:45:03.730 に答える