这里讲到透明背景图的应用,着重要看navigationController 的navigationBar;我们经常要将导航栏设置成透明,这时候最简单的方法,就是在导航栏上加一张透明的图片
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"transparent"] forBarMetrics:UIBarMetricsDefault];
但是这样以后,我们会发现导航栏下边有一条细细的黑线,这个解决起来也很方便;
self.navigationController.navigationBar.shadowImage=[UIImage imageNamed:@"transparent"];
此外imageView也可以用透明图片的方式达到类似的效果;
此外导航栏上的按钮也有非常多可供你发挥的地方,其中包括左侧和右侧的按钮项(buttonitem),也包括标题视图(title view)看清楚,同志们,他是一个view哦
self.navigationController.navigationItem.rightBarButtonItem=[[UIBarButtonItem alloc]initWithTitle:@"action" style:UIBarButtonItemStylePlain target:self action:@selector(@"Action")];
或者
self.navigationController.navigationItem.rightBarButtonItems=barButtonArray;
或者对中间的view做一些复杂的修改
self.navigationController.navigationItem.titleView=navSearchBar;//这里可以放一个view,做你想做的事情
关于视图是否延伸到半透明的bar的下方的方法
通过控制试图控制器的edgesForExtendedLayout属性,该属性的默认值是UIRectEdgeAll,表示视图在四个边界方向上都会延伸到半透明元件的下方,如果把这个视图属性设置为UIRectEdgeNone,那么视图的边界在碰到bar之后就不继续延伸;
控制导航栏透明的属性是
self.navigationController.navigationBar.translucent=YES;
此外,导航栏隐藏于显示可用方法
[self.navigationController setNavigationBarHidden:YES animated:YES];
最后导航栏推入新的视图或者推出视图我就不说了,太常用了。