2013-09-25 78 views
15

我只是在Xcode 4.x版轉移到Xcode中5,具有使跳轉到iOS 7.過去一直以來,我已經把文字用在UILabel尾隨空格,並使用右對齊葉右側的小空間文本。由於我已經轉移到xCode 5,這種行爲似乎已經改變。當UILabel右對齊它的文本,它似乎被忽略後面的空格 - 並且如果有沒有尾隨空格在所有對齊文本。xCode 5/iOS 7中的UILabel對齊行爲是否已更改?

是否有其他人看到過這種行爲?有沒有辦法在xCode中添加邊緣插入以適應這種新行爲,還是必須在代碼中完成?

+0

我在iOS 7設備上看到完全相同的行爲。在我的情況下,它是在一箇舊的應用程序,我還沒有遷移到Xcode 5,所以我仍然使用Xcode 4.6.3來構建它。這意味着它也影響了iOS 6的兼容模式。在這個應用程序中,我首先添加了這些尾隨空格的原因是爲了克服另一個UILabel錯誤:右對齊斜體文本被裁剪在右邊緣!所以現在我被迫在同一段代碼中使用新的解決方法。這一次,我結束了一個骯髒的修復,將文本更改爲居中對齊並動態調整框架。 – Magnus

+0

您可以嘗試使用選項空間(或alt-space),因爲這會給出不同的空格字符 – amergin

回答

7

我看到相同的行爲。我認爲這個問題並不是對xCode5的改變,而是當更改爲在ios7下運行時。 Apple現在似乎將剝離文本塊中的所有空白字符,該文本塊將使用UILabel顯示,用於在行的開頭或行的末尾填充行。如果在兩個單詞之間的一行內使用多個空格字符,則這些字符不會被剝離。

我們一直在使用UILabels佈局從標記語言提供的文本的多塊。有些文本內容需要居中對齊,但有意添加空格以將特定行文本向左或向右推。這被認可並且在ios6下完美工作,但是在ios7下打破了。

爲什麼蘋果公司做了這個改變,我想知道。任何人有這個問題 - 任何想法爲此修復?我們正在試驗一種自定義字體,它具有看起來像空間但不是的控制字符。

+0

謝謝。有時我會在按鈕上的文本之前使用空格,以便在按鈕的圖形和標題之間添加更多空間(我相信這是內部的'UILabel'。我正在使用中央控制對齊 - 看起來像以前一樣運作。我還沒有檢查過每種形式的文本對齊方式(左,右,中)是否發生了變化。 –

+0

我也有這個問題。非常令人沮喪。對我來說更加奇怪的是,它看起來只是尾部空間受到影響 - 領先空間仍然呈現。 – DanM

+0

此外,忽略拖尾空格的同樣棘手的決定似乎也應用於adjustsFontSizeToFitWidth的計算。 – DanM

1

看一看UILabel text margin

大多數建議與代碼這樣做。

我做了我的一些事情是這樣的:

[myLabel setFrame:CGRectMake(75 ,20,size.width + 5,size.height+2)];其中size是我的文字內容CGSize

您也可以嘗試用Auto Layout constraints這樣做。

+0

謝謝。當然有很多例子可以使用代碼來完成。我很想知道是否有其他人在UILabel行爲中看到過這種變化。 –

-1

是的,我已經看到了,我沒有看到一個簡單的一般修復吧!

0

我用\ A:

label.text = [NSString stringWithFormat: @"%@ \a", originalString]; 

這力量/技巧的空間分成表現。

+0

追加\ a不起作用。 iOS 10。 –