3

我試圖在UITabBarItem標題標籤上啓用文本字串(增加字母間距)。但是爲UITabBarItem提供NSKernAttributeName屬性沒有任何區別。然而,其他兩個屬性正在工作:NSForegroundColorAttributeName,NSFontAttributeName。我已經嘗試使用系統字體和另一種字體:SFUIDisplay-Regular。無法啓用UITabBarItem上的字母間距(字距)

和是的,我也嘗試使用UIControlStateNormal和UIControlStateSelected。

下面是代碼:

for (UITabBarItem *item in self.tabBar.items) 
{ 
[item setTitleTextAttributes: @{ 
        NSKernAttributeName: @(4.0f), /* does nothing */ 
        NSForegroundColorAttributeName: [AppStyle whiteColor], 
        NSFontAttributeName: font 
       } 
       forState:UIControlStateNormal]; 

的NSKernAttributeName屬性沒有任何效果。

我也試過在外觀上做,當應用程序加載,這樣的:

NSDictionary *attributes = @{ 
          NSKernAttributeName: @(4.0f) /* does nothing */ 
          }; 
[[UITabBarItem appearance] setTitleTextAttributes: attributes 
             forState: UIControlStateNormal]; 
[[UITabBarItem appearance] setTitleTextAttributes: attributes 
             forState: UIControlStateSelected]; 

其中也什麼都不做。

我唯一能夠得到NSKernAttributeName工作的地方是在UILabel上使用setAttributedText。

你們知道爲什麼設置其他標題文本屬性工作在UITabBarItem,但NSKernAttributeName不?

+0

你找到了你的問題的答案? – MPG

+0

還沒有。現在我不得不在UITabBarItems上生活。 – Alex

回答

2

它也沒有改變我的任何東西。 Apple Documentation 檢查上面的鏈接。只有四個密鑰可以定製,

NSString * const UITextAttributeFont;

NSString * const UITextAttributeTextColor;

NSString * const UITextAttributeTextShadowColor;

NSString * const UITextAttributeTextShadowOffset;