2017-01-19 3 views
0

私のtabBarViewControllerでsetBadgeTextAttributesを使用して、私のタブバー項目のバッジテキストの色とフォントを変更したいと思います。だから私は私のコードを使用:tabBarItem setBadgeTextAttributesは、フォントのみではなく色を変更します。

for (UITabBarItem *tabBarItem in self.tabBar.items){ 
     [tabBarItem setBadgeColor:[UIColor redColor]; 
     [tabBarItem setBadgeTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: 
             [UIFont fontWithName:@"Helvetica-Bold" size:26.0], NSFontAttributeName, 
             [UIColor greenColor], NSForegroundColorAttributeName, 
             nil] forState:UIControlStateNormal]; 
} 

をしかし、それは唯一のバッジのテキストの色ではなく、フォントを変更します。どうすれば修正できますか?

してくださいと感謝〜

+0

タブバー項目の状態は何ですか?あなたは他の州のためにそれを設定しようとしましたか? –

+0

状態は正常です。また、color属性は通常の状態では機能しますが、フォントでは機能しません。 –

答えて

0

は次のようにviewDidAppear内にコードを入れて試してみてください。

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 
    if let notificationItem = self.tabBar.items?.last { 
     notificationItem.badgeValue = "\(12)" 

     if #available(iOS 10.0, *) { 
      notificationItem.badgeColor = .red 
      notificationItem.setBadgeTextAttributes([ 
       NSForegroundColorAttributeName: UIColor.green, 
       NSFontAttributeName: UIFont(name: "Helvetica-Bold", size: 10)! 
       ], for: .normal) 
     } 
    } 
} 
関連する問題