2013-03-31 61 views
0

我目前正在開發一個iPad應用程序,並希望將自定義字體應用於某個屏幕上的UIButtons。我注意到與其他屏幕類似的問題,即一些(看似隨機的)UIButtons上的文本消失。在這種情況下,自定義字體正在應用於某些按鈕,但不適用於其他按鈕,並且似乎沒有任何模式可以使用哪些按鈕,哪些不可以。我附上了下面的截圖,試圖讓你明白我的意思。只有一些UIButtons與定製工作

正如我所提到的,在其他一些屏幕上,我注意到文本完全從某些按鈕中消失,並且不得不用這些文字替換這些文字。

enter image description here

所有按鈕都在Interface Builder創建。他們使用歸因文本來允許多行和居中對齊。任何幫助將非常感激。

編輯 - 我的代碼是這樣的:

for (UIView *sub in view.subviews) { 
    UIButton *btn = (UIButton *) sub; 
    UILabel *lbl = [btn titleLabel]; 
    [lbl setFont: myFont size: mySize]; 
} 
+1

歸因或平面的文字?什麼'UIControlState'狀態?發佈一些代碼可能是必需的。 – zaph

+0

@Zaph - 用我的代碼更新了問題。使用屬性文本。 –

+0

你是否檢查過你的所有按鈕都在迭代的視圖數組中,例如通過在循環中記錄它們的內容?另外,在你的視圖控制器中執行該循環的位置在哪裏? – Darren

回答

2

從評論:

可以實現在UIButtons中心和多標籤標題不使用NSAttributedStrings通過添加以下行到你的for循環:

lbl.textAlignment = UITextAlignmentCenter; 
lbl.numberOfLines = 0; 
3

使用歸因確保IB項目被設置爲使用屬性文本,而不是純文本。爲NSLabel使用

- (NSAttributedString *)attributedTitleForState:(UIControlState)state 

要設置歸因標題爲NSButton使用

@property(nonatomic,copy) NSAttributedString *attributedText 

當然,你可能不需要屬性文本是所有你正在做的是隻設置一個字體和對齊。

對於文本組多條線:

@property(nonatomic) NSInteger numberOfLines 

適當。

+0

無法獲得歸因文本,所以與達倫的答案一致。感謝您的幫助,upvoted。 –

相關問題