2012-03-26 60 views
1

我發現了一個奇怪的行爲與UIButton的處理大字體大小時:截斷UIButton中的斜體文本?

我的iPad應用需要出示這些種類的UIButton的,我發現,當我在那些大字體大小的UIButton應用斜體屬性,文字看起來截斷像如下: screenshot

這很奇怪,因爲我的UIButton正確居中和足夠大。 sizeToFit沒有幫助。 我試圖把登錄知道更多,而且似乎按鈕的的UILabel的內部尺寸是太渺小了:

NSLog(@"Button width : %.1f, text width : %.1f", button.frame.size.width, button.titleLabel.frame.size.width); 
[button.titleLabel sizeToFit]; 
NSLog(@"Button width : %.1f, text width : %.1f", button.frame.size.width, button.titleLabel.frame.size.width); 

這給了我:

按鍵寬度:710.3,文本寬度:518.0

按鍵寬度:710.3,文字寬度:518.0

它在做同樣的直接認爲IB,將更多的時候斜體式UIButton上的字體大小超過150像素。 有沒有辦法解決這個問題,還是SDK錯誤?

+0

爲什麼不只是增加文本標籤的大小或添加自定義標籤作爲按鈕的子視圖? – 2012-03-26 17:26:54

+0

它不起作用。我發現的唯一工作是在最後添加一個空格,但奇怪的是必須這樣做 – Diwann 2012-03-26 21:13:37

+0

在這裏看到我的答案:http://stackoverflow.com/questions/6624447/uibutton-italic-font-clipping/21419202#21419202 – 2014-01-28 23:37:17

回答

0

我認爲它是一個大的字體大小(相對於按鈕/標籤大小)的組合。當你添加一個空格時,它實際上增加了UILabel的大小。

嘗試[button.titleLabel adjustsFontSizeToFitWidth]。這肯定會減小字體大小(如果它對於給定的幀大小來說太大),但會確保字符中的任何內容都不會被截斷。

+0

奇怪的是,adjustsFontSizeToFitWidth什麼都不做...... – Diwann 2012-03-26 22:23:39

1

您可以嘗試設置按鈕的標題像下面

[button setTitle:@"2 " forState:UIControlStateNormal/Highlighted/Selected]; 

,或者使用與您的ViewController相關的.xib文件做同樣的。 之後,你必須設置按鈕的標題的邊緣鑲石,可以從相應的.xib文件來完成,或者執行以下操作:

[button setTitleEdgeInsets:UIEdgeInsetsMake(0,spacingFromLeft, 0, 0)]; 

第二步將確保文字,在這種情況下,字符串「2」保持朝向中心對齊。因此,在方法UIEdgeInsetsMake()的leftSpacing參數中,您可以根據需要設置寬度以使其與中心對齊。

我也有同樣的問題,並採用了這種解決方案,這可能不是最好的或正確的方法,但它確實爲我工作。

+0

一個更簡單的方法可能是'setTitle:@「2」':) – 2015-12-30 16:41:50