簡體   English   中英

小於或等於約束始終相等

[英]less or equal constraint is always equal

我是iOS編程的新手,特別是使用Storyboard的。 我試圖獲得應該具有最大寬度的UILabel ,但是它應該根據里面的文本而變化,所以我給了這些限制

在此處輸入圖片說明

並在設置文本后的代碼中調用sizeToFit()但結果不是我想要的

在此處輸入圖片說明

如您所見,它總是相等的。 我該如何解決?

問題是您的約束是模棱兩可的。 您是說label前導錨必須大於或等於superview的前導錨+ 16,而label尾隨錨必須小於或等於superview的尾隨錨-16。但這意味着標簽可以在這兩個限制之間的任何位置

您必須添加至少一個約束,該約束將告訴自動布局將標簽放置在何處 (恰好在這兩個限制之間)。 例如,添加約束說, label的的centerX錨應該等於superview的的centerX錨。 這樣會將label放置在view的中心,而那些> =和<=約束將阻止該標簽擴展到那些限制之外。

編輯

另外,從情節提要板上顯示的方式看來,尾隨的空間約束是不正確的,應將其從<=更改為>= 確保在檢查器中顯示以下內容(您截屏的視圖非常混亂):

在此處輸入圖片說明

superview.trailing >= label.trailing + 16

label.leading >= superview.leading + 16

您希望前導和尾隨空格為16或更大 ,這意味着您想要> =約束。 這樣,前導和尾隨空間可以增加以允許文本字段的固有寬度(由其內容確定)。

您現在擁有的方式,前導和尾隨空格必須為16或更小 ,這意味着非常寬的文本字段內容可能導致文本字段從前緣和后緣小於16,但不能大於16,因此在大多數情況下,您將達到“等於”部分。

暫無
暫無

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

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