如何在一个自定义的UIView中实现ios7中UINavigationBar的模糊效果

qinyue0306 发布于 2013年11月07日
无人欣赏。

设置UINavigationBar的barStyle为UIBarStyleBlack,translucent为YES,可以实现较为明显的模糊效果,但是只能是黑色的背景,即使算上UIBarStyleDefault也只是白色。但是,如果我想实现其他颜色的模糊效果,该如何做呢

共6条回复
jjjjjeffrey 回复于 2013年11月07日

直接设置 @property(nonatomic, retain) UIColor *barTintColor 属性就可以了

qinyue0306 回复于 2013年11月07日

设置barTintColor模糊效果不明显,至少在iOS7.0.3中是这样,如果我的ViewController不在UINavigationController中,那么我就不能使用UINavigationController的UINavigationBar,我需要自定义一个NavigationBar,这时我有2种选择,如果继承于UINavigationBar,创建一个UINavigationBar,将之add到相应的UIViewController中,如何将其延伸到状态栏下方呢?如果不继承于UINavigationBar,就需要自己实现这种模糊效果,该如何实现呢?我有一个想法,将下方的内容ViewA制作一个模糊的拷贝ViewB,当下方内容区域ViewA向上移动透过NavigationBar的时候,其实显示的是ViewB,只是这样又有问题:如何制作这个拷贝ViewB?性能方面是否可行?

freecunix 回复于 2013年11月08日

关注。。。。

sam 回复于 2013年11月08日

http://link text

qinyue0306 回复于 2013年11月08日

5楼 @sam 在iOS7.0.3中同样不适用。我发现一个问题,UINavigationBar在UINavigationController体系中使用可以向上延伸到状态栏下方,但是在其中添加log,发现其frame的依然是{0,20;320,44},但是它表现的效果就像是{0,0;320,64},不知为何?如果将UINavigationBar添加到一个非UINavigationController体系中的UIViewController中,如何将它延伸到状态栏下方呢?

登录 或者 注册