「translatesAutoresizingMaskIntoConstraints」は実際にどのように機能しますか?

ジョン・ラドジェビッチ

私は最近、iOSアプリケーションを完全にプログラムで作成する方法を学ぼうと試みました。このため、私が最初に遭遇した障害の1つは、制約を設定するためにtranslatesAutoresizingMaskIntoConstraintsを通常falseに設定する必要があることです。

いくつかの調査を行った後、私がかなり確信していることが3つあります。

  1. AutoresizingMasksは、自動レイアウトシステムが導入される前に、動的レイアウト(画面サイズ/向きに基づいて異なるレイアウト)がどのように実現されたかを示します。
  2. AutoresizingMasksは、スーパービューの境界が変更されたときにビューのスーパービューにサイズを変更する方法を指示する値です。
  3. translatesAutoresizingMaskIntoConstraintsはブール値であり、trueに設定すると(コードで作成されたUIViewでは常にデフォルトでtrueになります)、自動レイアウトシステム内のAutoresizingMaskプロパティの動作を複製する制約を作成するようにUIKitフレームワークに指示します。

私が理解していないのは、これらの制約がどのように正確に実装されているかです。Appleはドキュメントで、「システムは、ビューの自動サイズ変更マスクによって指定された動作を複製する一連の制約を作成しますこれにより、ビューのフレーム、境界、または中央のプロパティを使用して、ビューのサイズと場所を変更することもできます...」と述べています。

これは私を混乱させる部分であり、それが彼らの言葉遣いなのか、それとも私のトピックの誤解なのかはわかりません。AutoresizingMaskは単なる値であるため、それから制約を作成できることは意味がありません。自動生成された制約が実際には子ビューのフレーム(AKA childView.topAnchor = superview.topAnchorに基づいていることを意味しますか?AutoresizingMaskの値は、フレームに基づいてこれらの制約のどれが設定されるかを決定するだけですか?

例:フレームが(x:0、y:0、幅:50、高さ:50)のUIViewと「FlexibleBottomMargin」のAutoresizingMask。UIKitは、フレームベースのレイアウトが存在する場所にビューを配置する制約を自動的に作成し、マスクの動作を複製するために特定の制約(この場合は下部)を除外しますか?

Paulw11

autoresizingMask(フレームとともに)解釈して、作成する制約を決定するのは正しいことです。

与えた例では、システムは次の制約を作成します-

  • 50の幅の制約
  • 50の高さ制約
  • 最も近い隣人への先行、後続、および上位の制約、それらの隣人への固定距離
  • 最近傍への距離を持つ最近傍への大なり記号以上。

これにより、50x50のビューが水平方向と上部に固定され、必要に応じて下部と隣接するスペースの間のスペースを拡大できます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

kbuildは実際にどのように機能しますか?

分類Dev

mtuneは実際にどのように機能しますか?

分類Dev

isAuthenticated()は実際にどのように機能しますか?

分類Dev

BatchToSpaceNDは実際にどのように機能しますか?

分類Dev

sudoは実際にどのように機能しますか?

分類Dev

printf()は実際にどのように機能しますか?

分類Dev

IsDisposedは実際にどのように機能しますか?

分類Dev

-Infinityは実際にどのように機能しますか?

分類Dev

`screen`は実際にどのように機能しますか?

分類Dev

`screen`は実際にどのように機能しますか?

分類Dev

copytruncateは実際にどのように機能しますか?

分類Dev

Gremlinでは、map()は実際にはどのように機能しますか?

分類Dev

Javaの「週年」は実際にはどのように機能しますか?

分類Dev

str.startswithは実際にはどのように機能しますか?

分類Dev

sig_atomic_tは実際にはどのように機能しますか?

分類Dev

URLConnection.setUseCaches()は実際にはどのように機能しますか?

分類Dev

Integer.parseInt(string)は実際にはどのように機能しますか?

分類Dev

sync.WaitGroup.Done()は実際にはどのように機能しますか?

分類Dev

PHPの「foreach」は実際にどのように機能しますか?

分類Dev

Pythonの連鎖比較は実際にどのように機能しますか?

分類Dev

このコードは実際にどのように機能しますか?

分類Dev

春の@Transactional。それは実際にどのように機能しますか?

分類Dev

apt-getは実際にどのように機能しますか?

分類Dev

ForkJoinPool#awaitQuiescenceは実際にどのように機能しますか?

分類Dev

揮発性は実際にどのように機能しますか?

分類Dev

Affine Transformは実際にJavaでどのように機能しますか?

分類Dev

Brainfuck Hello Worldは実際にどのように機能しますか?

分類Dev

.gitignore除外ルールは実際にどのように機能しますか?

分類Dev

RVMとrbenvは実際にどのように機能しますか?

Related 関連記事

  1. 1

    kbuildは実際にどのように機能しますか?

  2. 2

    mtuneは実際にどのように機能しますか?

  3. 3

    isAuthenticated()は実際にどのように機能しますか?

  4. 4

    BatchToSpaceNDは実際にどのように機能しますか?

  5. 5

    sudoは実際にどのように機能しますか?

  6. 6

    printf()は実際にどのように機能しますか?

  7. 7

    IsDisposedは実際にどのように機能しますか?

  8. 8

    -Infinityは実際にどのように機能しますか?

  9. 9

    `screen`は実際にどのように機能しますか?

  10. 10

    `screen`は実際にどのように機能しますか?

  11. 11

    copytruncateは実際にどのように機能しますか?

  12. 12

    Gremlinでは、map()は実際にはどのように機能しますか?

  13. 13

    Javaの「週年」は実際にはどのように機能しますか?

  14. 14

    str.startswithは実際にはどのように機能しますか?

  15. 15

    sig_atomic_tは実際にはどのように機能しますか?

  16. 16

    URLConnection.setUseCaches()は実際にはどのように機能しますか?

  17. 17

    Integer.parseInt(string)は実際にはどのように機能しますか?

  18. 18

    sync.WaitGroup.Done()は実際にはどのように機能しますか?

  19. 19

    PHPの「foreach」は実際にどのように機能しますか?

  20. 20

    Pythonの連鎖比較は実際にどのように機能しますか?

  21. 21

    このコードは実際にどのように機能しますか?

  22. 22

    春の@Transactional。それは実際にどのように機能しますか?

  23. 23

    apt-getは実際にどのように機能しますか?

  24. 24

    ForkJoinPool#awaitQuiescenceは実際にどのように機能しますか?

  25. 25

    揮発性は実際にどのように機能しますか?

  26. 26

    Affine Transformは実際にJavaでどのように機能しますか?

  27. 27

    Brainfuck Hello Worldは実際にどのように機能しますか?

  28. 28

    .gitignore除外ルールは実際にどのように機能しますか?

  29. 29

    RVMとrbenvは実際にどのように機能しますか?

ホットタグ

アーカイブ