美文网首页
UITabBar显示两行文字。

UITabBar显示两行文字。

作者: Dolway | 来源:发表于2023-04-24 12:12 被阅读0次

UITabBar 并没有暴露 titleLabel 给我们。我们需要通过KVC 获取,然后修改其属性。

            let viewTabBar = item.value(forKey: "view") as? UIView
//            let imageView = viewTabBar?.subviews[0] as? UIImageView
            let label = viewTabBar?.subviews[1,true] as? UILabel
            label?.numberOfLines = 2
            label?.textAlignment = .center
            label?.lineBreakMode = .byWordWrapping
            label?.frame = CGRectMake(0, 0, (viewTabBar?.frame.size.width ?? 0),10)
            label?.sizeToFit()

修改行数后,会影响原来的布局,需要自己调整图片的显示。
调整图片和文字的偏移

// 调整文字偏移
item.titlePositionAdjustment = UIOffset(horizontal: 0, vertical: -20)
// 调整图片偏移
item.imageInsets = UIEdgeInsets(top: 0.0, left: 0, bottom: 0, right: 0)

需要注意的是, imageInsets 的调整必须在let viewTabBar = item.value(forKey: "view") as? UIView的前面。因为一旦设置 imageInsetsitme里的view 就变化了,之前的设置就没有意义了

相关文章

网友评论

      本文标题:UITabBar显示两行文字。

      本文链接:https://www.haomeiwen.com/subject/uieujdtx.html