首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Swift -如何更改UITabBarItem徽章字体?

Swift -如何更改UITabBarItem徽章字体?
EN

Stack Overflow用户
提问于 2017-06-11 05:53:22
回答 4查看 4.2K关注 0票数 8

我有一台UITabBar。我设置了选项卡栏项目的值:

代码语言:javascript
运行
复制
tabBarItem3?.badgeValue = String(self.numberOfProducts)

现在,我想将其字体更改为特定的字体。然后我使用了下面的代码:

代码语言:javascript
运行
复制
tabBarItem3?.setBadgeTextAttributes([NSFontAttributeName: UIFont(name: "IRANSans", size: 14)], for: .normal)

它不起作用。我该怎么办?

EN

Stack Overflow用户

发布于 2019-04-24 01:13:53

尝试UITabBarController extension中的这两个函数

代码语言:javascript
运行
复制
var tabBarController : UITabBarController

bottomBar = UITabBarController()

... 
... 
... 

 // Change badge font size
bottomBar.setBadgeFontSize(fontSize: 10.0)


 // Change badge font
bottomBar.setBadgeFont(font: UIFont.boldSystemFont(ofSize: 12.0)) 

Swift 4

代码语言:javascript
运行
复制
extension UITabBarController {

  /**

   Change the badge font size of an UITabBarController item.

   - Parameter fontSize: new font size
   - Parameter subviews: nil or optional when called from UITabBarController object.

   Example of usage (programmatically):

让bottomBar = UITabBarController()

..。

..。

..。

bottomBar.setBadgeFontSize(fontSize: 10.0)

代码语言:javascript
运行
复制
*/
func setBadgeFontSize(fontSize: CGFloat, subviews: [UIView]? = nil) {

 let arraySubviews = (subviews == nil) ? self.view.subviews : subviews!

 for subview in arraySubviews {
   let describingType = String(describing: type(of: subview))
   if describingType == "_UIBadgeView" {
     for badgeSubviews in subview.subviews {
       let badgeSubviewType = String(describing: type(of: badgeSubviews))
       if badgeSubviewType == "UILabel" {
         let badgeLabel = badgeSubviews as! UILabel
         badgeLabel.fontSize = fontSize
         break
       }
     }
   } else {
     setBadgeFontSize(fontSize: fontSize, subviews: subview.subviews)
   }
 }

}

/**

Change the badge font size of an UITabBarController item.

- Parameter font: new font
- Parameter subviews: nil or optional when called from UITabBarController object.

Example of usage (programmatically):

让bottomBar = UITabBarController()

..。

..。

..。

字体(bottomBar.setBadgeFont: UIFont.boldSystemFont(ofSize: 12.0))

代码语言:javascript
运行
复制
*/
func setBadgeFont(font: UIFont, subviews: [UIView]? = nil) {

 let arraySubviews = (subviews == nil) ? self.view.subviews : subviews!

 for subview in arraySubviews {
   let describingType = String(describing: type(of: subview))
   if describingType == "_UIBadgeView" {
     for badgeSubviews in subview.subviews {
       let badgeSubviewType = String(describing: type(of: badgeSubviews))
       if badgeSubviewType == "UILabel" {
         let badgeLabel = badgeSubviews as! UILabel
         badgeLabel.font = font
         break
       }
     }
   } else {
     setBadgeFont(font: font, subviews: subview.subviews)
   }
 }
}

}
票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44478417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档