2013-06-12 89 views
4

我有一個使用自定義字體的UIButton的子類。問題是大寫字母不顯示diaeresis。自定義字體不以大寫字母顯示diaeresis

下面是使用和不使用自定義字體的相同按鈕示例的圖像。我將標題的背景顏色設置爲紅色以查看發生了什麼。

沒有自定義字體

without custom font

使用自定義字體

with custom font

UIButton子類覆蓋awakeFromNib

- (void)awakeFromNib 
{ 
    [super awakeFromNib]; 
    UIFont *font = [UIFont fontWithName:@"TitilliumText22L-Bold" size:self.titleLabel.font.pointSize]; 
    self.titleLabel.font = font; 
} 

任何人都可以告訴我該做什麼才能在大寫字母上顯示分泌物嗎?

謝謝。

+1

檢查也可能是你的問題是同樣喜歡http://stackoverflow.com/questions/13225761/custom-font-on-uibutton- title-clipped-on-top-of-word?rq = 1 – jamil

+0

獲得標題標籤ref並嘗試增加其高度可能應該起作用 – amar

+0

@Bob蘋果感謝,這可能是一個醜陋的解決方法。無論如何,如果有人知道更好的解決方案,那就太好了。 –

回答

3

https://stackoverflow.com/a/8314197/617787

唯一需要注意的解決方案(改變字體文件的「ascender」)是使用這種修改過的字體的多行UILabels上的行之間的空間也會改變,所以你可以使用NSAttributedString來修改它在每個案件的基礎上。

0

好像是在獲得晉級文本,儘量減少字體大小或改變titleLable的框架我通過以下由鮑勃 共享的問題這個答案解決了這個問題(UIButton的財產)

+0

更改字體大小不會工作,我試過了 –

1

我已經做了一些測試,這個土耳其字,看到的結果是:

3 Buttons and 1 UILabel with NeoSansPro font and capital TR chars

  1. UILabels正確顯示大寫字母。
  2. 帶有helvetica字體的UIButton會正確顯示字符(第三個按鈕),但NeoSansPro系列的所有成員都會遇到問題。
  3. 的問題只發生在標題標籤的頂部線(按鈕2)

解決方案是:

  1. 設置標題標籤的線路數:0
  2. 集標題「\ nBUTTON TITLE」而不是「BUTTON TITLE」
  3. 在IB或代碼中,玩t他的內容和標題對齊,直到標題正確顯示。你應該把標題向上推,如果你想要它在中間
0

我有一個類似的問題,在標題標籤頂部diaeresis被切斷。 我做了一個UIButton子類,使用該代碼來解決這個問題:

-(void)layoutSubviews 
{ 
    [super layoutSubviews]; 

    CGRect frame = self.titleLabel.frame; 
    frame.size.height = self.bounds.size.height; 
    frame.origin.y = self.titleEdgeInsets.top; 
    self.titleLabel.frame = frame; 
}