2013-10-19 23 views
20

說我有兩個UILabels,一個是URL,另一個是定時器:使用自動佈局,如何讓同一「行」上的兩個標籤在寬度上動態變化(根據每個標籤的寬度進行調整)?

[http://website.com/link/to/specific/story] [9m 42s] 

但「計時器」的UILabel變化寬了不少。有時它只是12s例如,其他時間是125h 32m 8s。有很多變化。我希望定時器UILabel佔用儘可能多的寬度,因爲它需要和URL標籤佔用其餘的。這意味着如果定時器更長,URL更短等。

如何在自動佈局中執行此操作?最好在Interface Builder中?

+0

固有內容大小+優先 –

回答

21

你應該設置壓縮性,URL標籤必須具有較低的值;

將標籤之間的水平間隔設置爲常量(例如零或默認值);

爲每個標籤設置寬度並選擇「小於」或「大於」關係,這些值爲視圖的縮小/擴大設置限制。

+0

我在這個示例項目中缺少什麼呢? http://cl.ly/43072x2A0U3P –

+0

@DougSmith在你的項目中你沒有執行第2步和第3步。 – hybridcattt

+0

對不起,我按了輸入鍵:) @DougSmith在你的項目中你沒有執行第2步和第3步。 我有修改你的項目http://cl.ly/0b1Q2R1R1W1v 這是我做的:創建正確的水平約束:從超級視圖到第一個標籤,從第一個標籤到第二個標籤,從第二個標籤到超級視圖。這修復了「paddind」。然後我爲每個標籤固定寬度,並使其「大於」和「小於」,以便寬度可以改變。我爲1s標籤> = 100設置寬度,爲2nd - 50 <=寬度<= 100設置寬度。現在完美的作品(嘗試更改第二個標籤的文字) – hybridcattt

8

這是耐壓性變得重要的地方。由於URL標籤需要先縮小(爲了容納定時器標籤的空間),URL標籤的壓縮阻力應低於定時器標籤的壓縮阻力(當然,水平方向)。您可以在IB中輕鬆設置此屬性。

+0

雖然我給了標籤集寬度嗎?我如何讓一個人願意超越另一個? –

+0

不,不要給他們寬度,讓他們保持其內在的內容大小。 –

+0

如果我刪除寬度約束,我得到的約束警告不足。這些是我對它的限制,我還有什麼要做的呢? http://i.imgur.com/DIfF8S9.png –

相關問題