navigationBar设置透明

本文介绍iOS中如何实现导航栏的透明效果,包括完全不用图片、使用1*1全透明图片的方法,并说明了iOS7中edgesForExtendedLayout属性对navigationBar样式的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//设置全透明方式

一、完全不用图片(iOS7之后有效)
[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
self.navigationBar.translucent = YES; //iOS7必须显示指定,否则无透明
self.navigationBar.shadowImage = [UIImage new]; //若bar是全透明,用此干掉bar底的线

二、使用一张1*1的全透明图片(此方式iOS7、8都不必再设置shadowImage,但是iOS要设置translucent)如下:
[self.navigationBar setBackgroundImage:aImage forBarMetrics:UIBarMetricsDefault];
self.navigationBar.translucent = YES; //iOS7必须显示指定,否则无透明

//自定义透明度
一、方式使用一定透明度的图片(必须使用自定义图片)
[self.navigationBar setBackgroundImage:aImage forBarMetrics:UIBarMetricsDefault];
self.navigationBar.translucent = YES; //iOS7必须显示指定,否则无透明

 注意:

//会影响navigationBar设置的因素。
if ([self respondsToSelector:@selector(edgesForExtendedLayout)]){
self.edgesForExtendedLayout = UIRectEdgeAll;
}

** 当将为viewController设置如下属性时,self.edgesForExtendedLayout = UIRectEdgeNone; 再对navigation进行任何风格的设置都不会再生效。(除了是否隐藏这个属性)。详情可以参考如下:

IOS7新特性 edgesForExtendedLayout

iOS7 edgesForExtendedLayout

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值