2011-07-13 65 views
1

我目前UILabel對象有一個小問題。在Xcode 4.0.2中,我使用Interface Builder來構建一個垂直堆疊的右對齊標籤視圖。標籤除了標籤和框架的Y座標外都是相同的。右對齊的UILabel對象文本稍微偏離

如果標籤中的文字全部長度相同,則文本的權利將愉快地排列起來。但是,如果文本長度不同,較長文本的權限將稍微偏離。如果我在IB中更改文本屬性並在設計圖面上觀察它,並且如果我在模擬器或設備上運行應用程序,並且標籤中的文本長度不同,則會發生這種情況。爲了更清楚地觀察這一點,我改變了幾個標籤的背景顏色,並且一旦文字長度不同,它就立即可見。

我試圖改變標籤的很多屬性是相同的,我增加了標籤的大小,但似乎沒有任何影響。標籤的寬度遠遠大於我試圖放置在裏面的文字。

這是我正在談論的一個例子。在IB,這裏是視圖看起來像所有具有相同的文字長度的標籤:

enter image description here

,這裏是什麼樣子,如果我第一個標籤的文本變爲00.00:

enter image description here

什麼可能導致這種情況的任何想法?

回答

0

我相信原因是因爲一個字的第一個字符對齊,以整體座標的X位置,但後續字符用分數x位置(以提供甚至字距調整)。通過在第一行添加一個額外的零,你已經改變了單詞開始的位置,所以你的行中的最後一個零點與其他零點的分數位置略有不同。

老實說,我不會爲此擔心。這是一個非常微妙的抗鋸齒差異。

+0

相信我,我希望我沒有擔心,但它是非常顯而易見的是,它是關閉的,當你看它的設備上。 –

+0

@BP這就是所有文本在系統上的渲染方式。沒有什麼可以做到的,因爲它不會下降到CoreText並實現您自己的自定義佈局引擎。老實說,這不值得擔心。我甚至在沒有放大的情況下甚至看不到我的電腦屏幕上的差異(iPhone/iPad屏幕密度更高,所以它應該在那裏更不明顯)。 –