UINavigationBar 自定义背景与悬垂(iOS 5)

Posted

技术标签:

【中文标题】UINavigationBar 自定义背景与悬垂(iOS 5)【英文标题】:UINavigationBar custom background with overhang (iOS 5) 【发布时间】:2012-05-11 08:53:24 【问题描述】:

我正在尝试制作这个(请原谅快速而肮脏的模型):

这是一个带有自定义背景图像的 UINavigationBar。但是,图像需要悬垂在导航栏的底部。图像是不规则的形状(我的模型上的白色部分是透明的,应该通过间隙显示视图控制器的视图)。

我真的宁愿不必修改每个可能的视图控制器来绘制悬垂位。谁能想到一个聪明的解决方案来完成这项工作?

我只支持 ios 5,所以不需要向后兼容。

【问题讨论】:

【参考方案1】:

其实是我自己管理的:我把背景的悬垂部分做成了单独的图片,并添加为导航栏的子视图:

    UIImageView *iv = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"navigationBarBackground-overhang"]];
    iv.frame = CGRectMake(0, newNavC.navigationBar.frame.size.height, newNavC.navigationBar.frame.size.width, iv.image.size.height);
    [newNavC.navigationBar addSubview:iv];
    newNavC.navigationBar.clipsToBounds = NO;

【讨论】:

不要只是讨厌它。一旦您发布到 ***,您就可以在几分钟后自行解决。无时无刻不在发生。啊……顺便说一句,干得好。 呵呵。它确实经常发生。另一方面,在 Stack Overflow 上发帖似乎确实有帮助,因为它以某种方式促使我的大脑想出解决方案!

以上是关于UINavigationBar 自定义背景与悬垂(iOS 5)的主要内容,如果未能解决你的问题,请参考以下文章

UINavigationBar 问题的自定义背景

UINavigationBar 自定义标题被背景隐藏

如何使用自定义背景图像从 UINavigationBar 和 UIToolbar 中删除圆角?

iOS 11 UINavigationBar 自定义背景总是在状态栏下扩展

iPhone - 如何使用我的纹理背景自定义 UINavigationBar 后退按钮

自定义 UINavigationBar 背景适用于除一个之外的所有导航控制器