UINavigationBar的结构分析

自从iOS11以后,苹果X的出现,导致UINavigationBar也出现了比较大的变化,刘海的出现让开发人员需重新进行适配,爽歪歪。下面先从UINavigationBar的外观进行讲解。

UINavigationBar的结构分析_第1张图片

以上是X的外观,下面我们对UINavigationBar的结构做下简单的分析:

一、translucent为半透明的情况下:

UINavigationBar的结构分析_第2张图片

结构分析:_UIBarBackground相当于是UINavigationBar的contentView,用于存放改变Bar样式的View,UIImageView是UINavigationBar最下面的横线,UIVisualEffectView则使用毛玻璃对Bar进行生成半透明的效果,UINavigationBarContentView用来添加BarItem。

1、通过设置barTintColor属性:设置后对_UIBarBackground颜色进行渲染,让Bar生成Color的颜色。

2、通过设置BackgroundImage属性:设置了图片后我们来看看苹果做了什么处理:

UINavigationBar的结构分析_第3张图片

苹果将毛玻璃的View去掉,直接生成一个UIImageView并设置图片;

二、translucent为不透明的情况下:

UINavigationBar的结构分析_第4张图片

结构分析:设置不透明的情况生成的结构相对比较简单,可参考上面的分析。

对barTintColor属性和BackgroundImage属性进行设置的结果结构跟上面的一样,这里不做分析。

结论:以上是UINavigationBar的结构分析,读者可以对以上情况进行实现分解。若有错误的地方,欢迎指正!!

你可能感兴趣的:(iOS基础)