一直以来都没有特别细致的去处理导航栏问题,今天有个小需求,导航栏一开始透明,随着scrollView滚动而变为变色,本来想着这就是一个很简单的问题,无非是:
//设置导航栏背景图片为一个空的image,这样就透明了
UIImage*image = [[UIImagealloc]init];
[self.navigationController.navigationBar setBackgroundImage:image
forBarMetrics:UIBarMetricsDefault];
//去掉透明后导航栏下边的黑边
[self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]];
这么简单的代码,但是实际这么做了却发现导航栏变成了很色。
于是开始思考,只要不是通过创建一个图片对象来做导航栏透明色,而用barTintColor变成别的颜色都是正常的,难道是因为导航栏透明度问题?于是乎加了这句代码:
self.navigationController.navigationBar.translucent = YES;
就解决了。
如果是透明的导航栏图片,那么导航栏本身也得是可透明的。
网友评论