Multiple lines in UITabBarItem Label

前端 未结 4 1780
说谎
说谎 2021-01-19 12:06

I\'ve tried many things but impossible to find a way to put the label of a UITabBarItem with a lineNumber customised.0 (i would like to get the title on 2 lines).

Is

4条回答
  •  无人及你
    2021-01-19 12:46

    this is my solution for that

    we need to implement this inside viewwillLayoutSubviews. to update the ui and make it works

    in this example in going to customize my 3rd tab bar item only

    override func viewWillLayoutSubviews() {
        // acess to list of tab bar items
        if let items = self.tabBar.items {
            // in each item we have a view where we find 2 subviews imageview and label
            // in this example i would like to change
            // access to item view
            let viewTabBar = items[2].value(forKey: "view") as? UIView
            // access to item subviews : imageview and label
            if viewTabBar.subviews.count == 2 {
                let label = viewTabBar?.subviews[1]as? UILabel
                // here is the customization for my label 2 lines
                label?.numberOfLines = 2
                label?.textAlignment = .center
                label!.text = "tab_point".localized
                // here customisation for image insets top and bottom
                items[2].imageInsets = UIEdgeInsets(top: 8, left: 0, bottom: -5, right: 0)
            }
        }
    }
    

    and here is the result

提交回复
热议问题