2016-03-23 13 views
1

我創建了以下觀點,即看起來如下:理解「firstBaseLine」與「基線」自動版式約束

screenshot 1

,並用於添加缺少的約束噸自動添加約束。 我在iOS世界中很新,我試圖配置約束如何工作。

在文檔大綱,我可以看到添加的約束:

screenshot 2

我點擊標籤上UR和尺寸檢查告訴我下面的:

screenshot 3

什麼通過第一個基線與UL對齊的約束之間的差異,並通過基準與UL對齊?當我點擊約束按鈕上的大小檢查器時,它會顯示相同的行。

回答

8

我不建議使用「添加缺少約束」。 DWIW(做它想做的)是一個非常難以預測的嚮導。瞭解每個約束並手動添加。按住Ctrl鍵在場景層次結構中的對象之間拖動;使用約束檢查器並編輯數字值;使用三角形彈出框中的「更新框架」;刪除檢查員的約束條件;重複,直到你得到它。

firstBaseLine指的是多線對象的頂基準線: Storyboard warning : First baseline layout attribute before iOS 8.0

如果只涉及的標籤或文本字段有一條線,這是一個無用的約束。

如果您希望文字的兩個並排單線條斑點垂直對齊,即使它們的字體大小,上升和基線下降可能不同,請使用baseLine對齊。它看起來很自然,就像字符串在同一行上。

底部,頂部和中心垂直對齊也是可能的,更適合非文本對象。

+0

首先的固定40,非常感謝您的回答。我在哪裏可以找到有關約束的好教程? –

+0

@zero_coding我認爲在youtube和raywenderlich.com上提供的所有教程都很好。但是你必須不斷練習不同的屏幕才能正確地學習。祝你好運! –

12

從Apple文檔:

NSLayoutAttributeBaseline
對象的基線。
Available in iOS 6.0及更高。
NSLayoutAttributeFirstBaseline
對象的基線。對於具有多行文本的對象,這是最上面一行文本的基線。
Available in iOS 8.0及更高。

這裏也是對齊三線標籤時的區別截圖。上部綠色標籤使用NSLayoutAttributeFirstBaseline,下部綠色標籤使用NSLayoutAttributeBaseline。以上是關於兩個綠色標籤的唯一的限制之外,他們都平鋪在粉紅色標籤

DebuggingBaselineConstraints