首页 > 解决方案 > 根据背景图片设置导航栏大小

问题描述

我为导航栏设置了一个背景图像。这工作正常。但我希望将导航栏高度调整为背景图像。目前背景图像的宽度也没有根据屏幕大小设置。

我尝试设置导航栏的高度,如此处所述。这会在一秒钟内显示一个更大的导航栏,但随后又会缩小到默认大小。

有谁知道如何实现我想要的?这是我想要实现的一个示例:图像

标签: iosxcodeuinavigationbar

解决方案


苹果文档:

允许使用 UINavigationBar 类的方法和属性自定义导航栏的外观,但您绝不能更改其框架、边界或 alpha 值或直接修改其视图层次结构。

为了达到您标记的图像中看到的效果,他们很可能使用集合视图来布局他们的数据,并且该图像是集合视图标题的一部分。他们使导航栏背景颜色清晰,但图像绝对不是导航栏本身的一部分。

Apple 建议永远不要手动更改导航栏的框架,因为它会混淆其子视图和动画方法的布局代码。

您可以将导航栏子类化并尝试创建类似的东西,或者走更简单的路线并使导航栏清晰(UIColor(white: 0, alpha: 1)否则.clear它可能会显示不正确)并让底层视图显示图像(例如,标题扩展的集合视图到视图控制器的顶部)。

这将允许您自由调整图像的高度和宽度,而无需子类化导航栏并产生潜在的错误。


推荐阅读