UITabBarItem标签中有多行

Kew*_*ier 0 uitabbaritem ios swift

我已经尝试了很多东西,但是找不到一种方法来将UITabBarItem的标签放置为自定义的lineNumber.0(我希望在2行上获得标题).

有办法吗?

小智 5

现在它包含两个子视图.0是imageView,1是标签.现在使高度imageview稍微小一些,这样你就可以给标签的高度稍微增加一条线.ofnumberoflines通过代码将标签的属性设置为0.

let viewTabBar = tabBarItem.value(forKey: "view") as? UIView
let imageView = viewTabBar?.subviews[0] as? UIImageView
let label = viewTabBar?.subviews[1] as? UILabel
Run Code Online (Sandbox Code Playgroud)

现在玩这个标签.

  • 请注意,如果您没有图像,则UILabel的索引将为0,我在下面发布了更通用的解决方案 (2认同)

eXh*_*ted 5

更稳定的解决方案:

guard let view = tabBarItem?.value(forKey: "view") as? UIView,
        let label = (view.subviews.compactMap{ $0 as? UILabel }).first,
        let imageView = (view.subviews.compactMap{ $0 as? UIImageView }).first else { return }
Run Code Online (Sandbox Code Playgroud)