问题
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 there a way to do it?
回答1:
Now it contains two subviews. At 0 it is imageView and at 1 it is label.
Now make the height of imageview a bit smaller so that you can give the height of label a bit larger to have multiple lines. Set the property ofnumberoflines of the label to 0 via code.
let viewTabBar = tabBarItem.value(forKey: "view") as? UIView
let imageView = viewTabBar?.subviews[0] as? UIImageView
let label = viewTabBar?.subviews[1] as? UILabel
and now play with this label.
回答2:
More stable solution:
guard let view = tabBarItem?.value(forKey: "view") as? UIView,
let label = (view.subviews.flatMap{ $0 as? UILabel }).first,
let imageView = (view.subviews.flatMap{ $0 as? UIImageView }).first else { return }
回答3:
you can not do this with UIBarButtonItem because it doesn't have property titleView like UINavigationItem!
You can set only string as title and tab image! that's it!
If you have option to set label as titleview of tabbaritem then you can take label with numberofline 0 but here you can set string only!
来源:https://stackoverflow.com/questions/46219860/multiple-lines-in-uitabbaritem-label