导航栏详解

  这里讲到透明背景图的应用,着重要看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];

最后导航栏推入新的视图或者推出视图我就不说了,太常用了。

你可能感兴趣的:(导航栏详解)