2012-04-06 23 views
1

ナビゲーションコントローラでレンダリングされている半透明のナビゲーションバーがあります。CALayerの影と半透明のUINavigationBars

私はそれの下にドロップシャドウを追加したいと思いますが、シャドウがレンダリングされると、それもナビゲーションバー内に描画されるようです。

これは非常に迷惑で、ナビゲーションバーの下にある影の部分をレンダリングしたいと思います。ここで

は影をレンダリングするためのコードです:

navController.navigationBar.layer.shadowColor = [[UIColor blackColor] CGColor]; 

    navController.navigationBar.layer.masksToBounds = NO; 
    navController.navigationBar.layer.shadowPath = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, 320, 44)].CGPath; 
    navController.navigationBar.layer.shadowOpacity = 1.0f; 
    navController.navigationBar.layer.shadowRadius = 2.0f; 
    navController.navigationBar.layer.shadowOffset = CGSizeMake(0, 0); 

    navController.navigationBar.barStyle = UIBarStyleBlackTranslucent; 

はここ(画像エディタで作成した)私が達成したいものだ。 enter image description here

しかし、ここでは実際にレンダリングされるものです。 enter image description here

助けてください。

+0

navController.navigationBar.layer.masksToBounds = YES。 変更があるかもしれない – Hector

+0

これを行うと、ナビゲーションバーの境界内の影が制限されてしまいます。これは私が望むものではありません。私はそれとは逆のことをしたい。 –

+0

がshadowOffsetのy値を変更している可能性があります。 navController.navigationBar.layer.shadowOffset = CGSizeMake(0、heightOfNavigationBar)のようなものです。 –

答えて

0
[self.navigationController.navigationBar setTintColor:[UIColor colorWithRed:(132.0/255) green:(132.0/255) blue:(132.0/255) alpha:1.0]]; 

要件に応じてパラメータを変更してみてください。

むしろ私はリンクされたアプローチと一緒に行くことをお勧めしますが、標準として有益になるでしょう。そのため http://sebastiancelis.com/2009/12/21/adding-background-image-uinavigationbar/

源:

https://github.com/scelis/ExampleNavBarBackground
関連する問題