iOS15 UIBarAppearance

UIBarAppearance是iOS13苹果新出来的一个对相应的空间统一设置外观样式的API,可以统一配置NavigationBar 、TabBar、 Toolbar等的外观样式。

UIBarAppearance的子类

UINavigationBarAppearance 设置导航栏外观样式

UITabBarAppearance 设置Tabbar外观样式

UIToolbarAppearance 设置Toolbar外观样式

这里用导航条的UINavigationBarAppearance作为示例,TabBar和Toolbar的设置外观样式使用的方式与其相同

1.UINavigationBar默认外观样式

iOS15以前默认是半透明毛玻璃

iOS15以后默认是透明,在滑动时如果系统检测到导航栏下方有其他UI的话,导航栏会变成半透明毛玻璃,想要默认半透明毛玻璃,设置standardAppearance和scrollEdgeAppearance,单独设置standardAppearance也不行

let navBarAppearance = UINavigationBarAppearance()

navigationBar.scrollEdgeAppearance = navBarAppearance

navigationBar.standardAppearance= navBarAppearance

2.UINavigationBar相关属性说明

barTintColor 导航栏背景颜色

iOS15以前设置有效果

iOS15以后无效果需要设置UINavigationBarAppearance的backgroundColor

tintColor 导航栏文字 颜色

isTranslucent 半透明

默认为YES,当设为YES,iOS15以前先取barTintColor的颜色,当barTintColor为nil默认半透明毛玻璃,iOS15先取UINavigationBarAppearance的backgroundColor颜色,当UINavigationBarAppearance的backgroundColor为nil,UINavigationBarAppearance的backgroundEffect默认半透明毛玻璃,当UINavigationBarAppearance的backgroundEffect为nil背景为透明

当设为NO,iOS15以前先取barTintColor的颜色,当barTintColor为nil默认白色,iOS15先取UINavigationBarAppearance的backgroundColor颜色,当UINavigationBarAppearance的backgroundColor为nil,UINavigationBarAppearance的backgroundEffect默认背景为灰色,当UINavigationBarAppearance的backgroundEffect为nil背景为黑色

shadowImage 下划线

iOS13以前设置有效果,不过需要同时设置backgroundImage,会影响导航栏背景,不建议

iOS13以后无效果需要设置UINavigationBarAppearance的shadowColor和shadowImage

scrollEdgeAppearance iOS15

当可滚动内容的边缘与导航栏的边缘对齐时,导航栏的外观设置。如果这个属性的值为nil, UIKit使用导航栏的standardAppearance外观属性的值,修改为有一个透明的背景

standardAppearance iOS13

设置导航栏标准高度的样式设置,默认样式。此属性的默认值是一个包含系统默认外观设置的外观对象

3.UINavigationBarAppearance相关属性说明

backgroundEffect

半透明效果,基于backgroundColor或backgroundImage的磨砂效果

backgroundColor

背景色

backgroundImage

背景图片

backgroundImageContentMode

渲染backgroundImage时使用的内容模式。 默认为UIViewContentModeScaleToFill。

shadowColor

阴影颜色(底部分割线),当shadowImage为nil时,直接使用此颜色为阴影色。如果此属性为nil或clearColor(需要显式设置),则不显示阴影

shadowImage

阴影图片

你可能感兴趣的:(iOS15 UIBarAppearance)