簡體   English   中英

自動布局 Xcode

[英]Auto Layout Xcode

我是一個初學者,很難理解Auto layout約束。 對於放置在 storyboard 中的每個 object,我是否必須指定寬度、高度以及前導和尾隨約束以避免出現錯誤消息?

對於要准確渲染的任何視圖,系統需要明確地知道它是 - position 和尺寸。

考慮一個簡單的場景,您試圖在屏幕中心放置一個高度為“Y”和寬度為“X”的“矩形”,自動布局需要知道這個意圖。 您可以通過設置 4 個約束來傳達這一點:

  1. 高度約束
  2. 寬度約束
  3. 垂直在容器約束(或 centerYAnchor)
  4. 在容器約束(或 centerXAnchor)中水平

任何更多或更少數量的約束都可能會在定位或尺寸方面增加歧義。

在另一個示例中,您的“矩形”需要始終距離父視圖的所有邊緣 10 個點,您只需指定 -

  1. 矩形的前導錨相對於父視圖的(wrt)前導錨為 10 個點
  2. 矩形的尾隨錨點為 -10 點 wrt 父視圖的尾隨錨點
  3. 矩形的頂部錨點是父視圖的頂部錨點的 10 個點
  4. 矩形的底部錨點為 -10 點,相對於父視圖的底部錨點

請注意,尾隨錨點和底部錨點是負數,因為您將子視圖錨點放置在這些父錨點的各自原點之前。 此外,在這種情況下,您不需要指定高度或寬度,因為給定的約束隱含地根據設備尺寸動態指定它。

這些只是 2 個非常簡單的場景,但是如果您嘗試使用此邏輯(以編程方式或通過情節提要)進行渲染和玩耍,它會讓事情變得更清晰。

但實際上,這只是表面上的問題。 要真正深入研究,我建議深入研究自動布局文檔中的本節 - “ 約束剖析

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM