??這里講到透明背景圖的應(yīng)用,著重要看navigationController 的navigationBar;我們經(jīng)常要將導(dǎo)航欄設(shè)置成透明,這時候最簡單的方法,就是在導(dǎo)航欄上加一張透明的圖片
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"transparent"] forBarMetrics:UIBarMetricsDefault];
??但是這樣以后,我們會發(fā)現(xiàn)導(dǎo)航欄下邊有一條細(xì)細(xì)的黑線,這個解決起來也很方便;
self.navigationController.navigationBar.shadowImage=[UIImage imageNamed:@"transparent"];
此外imageView也可以用透明圖片的方式達(dá)到類似的效果;
??此外導(dǎo)航欄上的按鈕也有非常多可供你發(fā)揮的地方,其中包括左側(cè)和右側(cè)的按鈕項(buttonitem),也包括標(biāo)題視圖(title view)看清楚,同志們,他是一個view哦
self.navigationController.navigationItem.rightBarButtonItem=[[UIBarButtonItem alloc]initWithTitle:@"action" style:UIBarButtonItemStylePlain target:self action:@selector(@"Action")];
或者
self.navigationController.navigationItem.rightBarButtonItems=barButtonArray;
或者對中間的view做一些復(fù)雜的修改
self.navigationController.navigationItem.titleView=navSearchBar;//這里可以放一個view,做你想做的事情
??關(guān)于視圖是否延伸到半透明的bar的下方的方法
通過控制試圖控制器的edgesForExtendedLayout屬性,該屬性的默認(rèn)值是UIRectEdgeAll,表示視圖在四個邊界方向上都會延伸到半透明元件的下方,如果把這個視圖屬性設(shè)置為UIRectEdgeNone,那么視圖的邊界在碰到bar之后就不繼續(xù)延伸;
控制導(dǎo)航欄透明的屬性是
self.navigationController.navigationBar.translucent=YES;
此外,導(dǎo)航欄隱藏于顯示可用方法
[self.navigationController setNavigationBarHidden:YES animated:YES];
最后導(dǎo)航欄推入新的視圖或者推出視圖我就不說了,太常用了。