设备:iPhone 13 Pro 模拟器 iOS 15

默认显示

bar.png

1.Title
textAttributes:
font:font-family: "UICTFontTextStyleShortEmphasizedBody"; font-weight: bold; font-style: normal; font-size: 17.00pt
textColor:labelColor
UI:UIlabel

2.BarButtonItem
font:
Plain:font-family: "UICTFontTextStyleEmphasizedBody"; font-weight: bold; font-style: normal; font-size: 17.00pt
Done:font-family: "UICTFontTextStyleBody"; font-weight: normal; font-style: normal; font-size: 17.00pt
textColor:systemBlueColor
UI:_UIButtonBarStackView -> _UIButtonBarButton -> _UIModernBarButton -> UIButtonLabel
item.png

默认布局

1.正常情况
bar.png
可通过UIBarButtonItemStateAppearance titlePositionAdjustment属性来调整_UIModernBarButton 的位置
2.特殊情况
1).仅有 LeftBarButtonItem 或 RightBarButtonItem
item.png
item.png
2).仅有title
title居中,最宽时前后8距离
title.png
3).有title和item
item优先级高于title,会优先显示item,并且title可能会显示不全甚至无法显示
title距离item 6
item.png
4).BackBarButtonItem
iOS14以后可通过设置navigationItem.backButtonDisplayMode来控制BackBarButtonItem的显示模式。
默认状态下,BackBarButtonItem显示"<" + title
title过长,则显示 "<" + "Back"
title超级长,则只显示 "<"

5).BarButtonItems
可通过设UIBarButtonSystemItemFixedSpace类型的item调整item之间的距离,默认8
items数组,index从小到大,是从屏幕边向内侧的顺序排列,其中index为0的item后无空隙,其余有3的空隙,不知为何
items.png