簡體   English   中英

IB中的自動布局:添加與第二個視圖相關的約束

[英]Autolayout in IB: adding constraint related to a second view

簡短的問題:我想添加兩個約束,因此textview始終保持在其他兩個標簽之下。 我想通過Interface Builder做到這一點。

更長的解釋。 這是我的屏幕: 在此處輸入圖片說明

當前,“ Lorem ipsum”文本具有一個約束條件,該約束條件使其可以保持在紅色“ MAR-14”標簽下方8像素以下。 我想添加第二個較低優先級的約束,使它也保持在位置標簽(“阿姆斯特丹,荷蘭”)下方8像素處。 如何在Interface Builder中輕松添加此約束?

您添加第二個約束幾乎就像添加第一個約束一樣。 您可以從一個視圖按住Control拖動到另一個視圖,然后選擇“垂直間距”約束。

首先,此新約束的優先級為1000(必需),並將使用距畫布的當前距離。 您可以選擇新的約束並調整這些屬性。

但是,您如何期望這兩個約束在實踐中起作用? 您想要什么結果? 由於對“ MAR-14”標簽的第一個約束的優先級為1000,並且指定為“等於”(而不是不等式),因此距離決定了間隔,周期。 較低優先級的約束將不再重要。

如果您希望Lorem ipsum 與兩者中的較低者相距一定距離,則將需要一些約束。 一個說法是Lopem ipsum的頂部大於或等於MAR-14的底部加上8。另一種說法是Lorem ipsum的頂部大於或等於Amsterdam的底部加上任何數量。 然后有第三句話說,它應該盡可能靠近超級視圖的頂部:Lorem ipsum的頂部等於超級視圖的頂部。 您將最后一個優先級設置為低於要求的優先級,但可能仍然很高。 但是,您希望它低於其間視圖的垂直壓縮阻力優先級。 740可能很好。

如果我正確理解您的問題,而不是您需要為TextView設置2個頂級約束

1. Relavent to date label/button
2. with location  label but with low priority

您可以使用與位置標簽相同的方式添加約束,而不是雙擊屬性窗口屏幕右側的約束,您會看到優先級降低優先級,因為您希望默認為1000高優先級(減少至800或您想要的優先級)。

或者在屬性窗口右側看到約束后,屏幕快照顯示上將顯示約束,單擊工具圖標,您將獲得編輯選項,進入優先級字段並減少1000以設置低優先級。

因此它將設置低優先級約束您4。

希望這個能對您有所幫助

暫無
暫無

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

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