1. 给ViewController添加子视图
让我们开始在视图控制器中添加一个子视图。这个子视图将是我们的自定义导航栏。让我们相应地设置自动布局。在自定义导航栏上设置自动布局约束
NavBar.Height = 44
NavBar.Top = Safe Area.Top
NavBar.Leading = Safe Area.Leading
NavBar.Trailing = Safe Area.Trailing
约束在自定义导航栏和安全区域之间
2.添加ImageView作为背景
获取显示背景图像的图像视图。这个图像视图应该在我们的导航栏自定义视图的后面 在图像视图上设置自动布局约束
Image View.Top = Superview.Top
Image View.Leading = Superview.Leading
Image View.Trailing = Superview.Trailing
Image View.Bottom = NavBar.Bottom (For this drag from imageview to customview and choose last baseline constraint)
前导和尾随约束都在图像视图和它的超级视图之间。对于底部约束,我们将其设置在 NavBar.Bottom 和 Image View.Bottom 之间。这样做的目的是确保图像视图将覆盖整个自定义导航栏。
3. 最后一步
A. 设置自定义视图的清晰颜色 B. 在 imageview 上设置图像 C. 确保 imageview 的内容模式为“Aspect Fill”并选中“Clip to Bounds”。
4. 单元测试
在从 iPhone 5 到 iPhone X 的所有设备上进行测试。在所有设备中,期望 iPhone X 我们的自定义视图的图像是 64 像素,并且在 iPhone X 中它也使用安全区域。
行为方式与默认导航栏相同。