私は最近、iOSアプリケーションを完全にプログラムで作成する方法を学ぼうと試みました。このため、私が最初に遭遇した障害の1つは、制約を設定するためにtranslatesAutoresizingMaskIntoConstraintsを通常falseに設定する必要があることです。
いくつかの調査を行った後、私がかなり確信していることが3つあります。
私が理解していないのは、これらの制約がどのように正確に実装されているかです。Appleはドキュメントで、「システムは、ビューの自動サイズ変更マスクによって指定された動作を複製する一連の制約を作成します。これにより、ビューのフレーム、境界、または中央のプロパティを使用して、ビューのサイズと場所を変更することもできます...」と述べています。
これは私を混乱させる部分であり、それが彼らの言葉遣いなのか、それとも私のトピックの誤解なのかはわかりません。AutoresizingMaskは単なる値であるため、それから制約を作成できることは意味がありません。自動生成された制約が実際には子ビューのフレーム(AKA childView.topAnchor = superview.topAnchor
)に基づいていることを意味しますか?AutoresizingMaskの値は、フレームに基づいてこれらの制約のどれが設定されるかを決定するだけですか?
例:フレームが(x:0、y:0、幅:50、高さ:50)のUIViewと「FlexibleBottomMargin」のAutoresizingMask。UIKitは、フレームベースのレイアウトが存在する場所にビューを配置する制約を自動的に作成し、マスクの動作を複製するために特定の制約(この場合は下部)を除外しますか?
をautoresizingMask
(フレームとともに)解釈して、作成する制約を決定するのは正しいことです。
与えた例では、システムは次の制約を作成します-
これにより、50x50のビューが水平方向と上部に固定され、必要に応じて下部と隣接するスペースの間のスペースを拡大できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加