2015-10-15 81 views
6

我想對齊兩個UILabel s文本的開頭。我將兩個UILabel s(黃色和灰色背景)對齊,並使用sizeToFit:UILabel s縮小爲內容,但文本不完全左對齊。左邊有一個缺口。根據第一個字符,差距更大或更小。我想在下圖中對齊紅線。與灰色的UILabel中的小字體之間還有一點小差距,但幾乎看不到。對齊兩個UILabel文本

enter image description here

隨着Z性格的差距較小,但由黃色區域仍可見留給Z

enter image description here

一個簡單的UILabel對準不適合我的特定問題的幫助,因爲文本內容是動態的而不是靜態的。所以根據我從後端得到的數據可能有任何組合。因此,我希望UIFontUILabel屬性可以基於當前文本呈現返回間隙的大小。

我知道有像baselinecapHeightascender一個偉大的UIFont相關屬性可以訪問對齊文本,但似乎沒有屬性,將返回的左側這種差距的值。

+0

你試過我的解決方案嗎?任何意見? –

+0

我在我的代碼中刪除了'sizeToFit',並使用固定標籤大小來消除'sizeToFit'這個可能的根本問題。我使'UILabel'更寬,以消除正確的對齊假設。這仍然是同樣的問題。它必須是字體渲染。 –

回答

0

選擇兩個標籤並添加一個名爲align leading edges的約束。 UILabel

集壓痕按您的要求 裁判屏幕enter image description here

0

使用屬性文本拍攝

enter image description here

0

如果這並不需要是兩個UILabels,你可以有一個,與歸屬文本。那麼這兩條線將受到相同的佈局。

+0

您的解決方案聽起來很有希望,我試了一下。不幸的是,它與一個'UILabel'和兩個'UILabel'完全相同。我使用'\ n'爲'NSAttributedString'添加換行符,併爲字體樣式添加'NSFontAttributeName'。與兩個單獨的'UILabel'相同的左側間隙顯示爲 –

+0

然後,這可能是字體的一些屬性。您可能將不得不進入單個字形和核心文本。更低的水平。 –

0

我還沒有嘗試過人們發佈屏幕截圖的圖形用戶界面,但是......這種行爲與排版的本質是一致的。

字體大小完全不同,因此em的寬度不同,隨後字母間距也不同。

看到這個:http://www.w3.org/WAI/GL/css2em.htm欲瞭解更多信息。

我知道這個答案不會給你你所要求的,但它應該解釋爲什麼會發生這種情況。對於像這樣的自定義(如果是HTML和CSS),我會在子文本上使用負/正的邊距,但是當你使用背景時使用填充(或者你的GUI中的等價物)。

+0

謝謝你的評論。我認爲你是對的,這種行爲只是字體的正常排版。我使用不同的字體來查看我使用的字體是否爲源,如果是行爲。但其他字體也會產生這個左邊的差距。 –

+0

我最近在爲我的網格系統創建的微型網站上遇到了這個問題:http://interiorsystem.co.uk - 看看頂部的橙色背景區域。這兩行文字證明了這一點。我必須使用保證金來排列它們。 –

+0

看起來不錯。如果你有固定的文本和沒有動態的,這絕對是最簡單的解決方案。但就我而言,我擁有完整的動態文本,並且固定邊距無法解決所有可能的組合問題。 –