iOS 8 – 将模糊应用于导航栏和状态栏

iOS 8 – 将模糊应用于导航栏和状态栏,第1张

概述我正在尝试将模糊效果添加到导航栏状态栏. 我的问题是导航栏上的模糊很好,但状态栏不会模糊. 我的问题是:如何扩展边界以包含状态栏? 我正在使用以下方法来创建模糊效果: - (void) addBlurEffect {CGRect bounds = self.navigationController.navigationBar.bounds;UIVisualEffectView *visua 我正在尝试将模糊效果添加到导航栏和状态栏.
我的问题是导航栏上的模糊很好,但状态栏不会模糊.

我的问题是:如何扩展边界以包含状态栏?

我正在使用以下方法来创建模糊效果:

- (voID) addBlurEffect {CGRect bounds = self.navigationController.navigationbar.bounds;UIVisualEffectVIEw *visualEffectVIEw = [[UIVisualEffectVIEw alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStylelight]];visualEffectVIEw.frame = bounds;visualEffectVIEw.autoresizingMask = UIVIEwautoresizingFlexibleWIDth | UIVIEwautoresizingFlexibleHeight;[self.navigationController.navigationbar addSubvIEw:visualEffectVIEw];self.navigationController.navigationbar.backgroundcolor = [UIcolor clearcolor];[self.navigationController.navigationbar sendSubvIEwToBack:visualEffectVIEw];

}

在我的pList中,我有基于VIEw控制器的状态栏外观YES

在vIEwDIDLoad中我调用一个方法:

- (voID)configureVIEw {    // style controls    self.addAirportbutton.tintcolor = [UIcolor whitecolor];    // style background image    UIImageVIEw *sIDebarBackground = [[UIImageVIEw alloc] initWithImage:[UIImage imagenamed:@"sIDebarBackground"]];    self.tableVIEw.backgroundVIEw = sIDebarBackground;    // style navigation bar    self.navigationController.navigationbar.barStyle = UIStatusbarStylelightContent;    // this makes navigation bar transparent    [self.navigationController.navigationbar setBackgroundImage:[UIImage new]                                                  forbarMetrics:UIbarMetricsDefault];    self.navigationController.navigationbar.shadowImage = [UIImage new];    self.navigationController.navigationbar.translucent = YES;    // style toolbar    self.navigationController.toolbar.translucent = YES;    self.dismissAdsbutton.tintcolor = [UIcolor whitecolor];

在vIEwDIDLoad中完成其他任何重要 *** 作.
当我构建它时,这是视图的样子 – 它是一个嵌入在NavigationController中的tableVIEwController,我也使用了优秀的SWRevealVIEwController.

查看状态栏是如何模糊的:

任何帮助将非常感激!

更新:

见下面的答案.以下是已实施解决方案的屏幕截图:

解决方法 我一直试图取得类似的效果,在使用UINavigationbar的API进行调整后无法达到预期的效果后,我找到了一个解决方法:

>创建与Navigationbar Statusbar大小相同的UIVIEw.也就是说,它的帧数为(0,w,64),其中w是屏幕的宽度. (我是通过Storyboard完成的,并使用autolayout将宽度约束设置为等于其supervIEw的宽度约束)
>设置UIVIEw的backgroundcolor以清除颜色.
>使用以下代码使navigationbar完全透明:
navbar.setBackgroundImage(UIImage(),forbarMetrics:UIbarMetrics.Default)
navbar.shadowImage = UIImage()
navbar.translucent = true
>现在将模糊效果应用于该视图,这会产生模糊效果来自导航栏和状态栏的错觉.

请参阅this picture以获得实现效果(抱歉,由于声誉限制,我无法发布图像).

希望这可以帮助.

更新2015-05-28:

这就是我在StoryBoard中实现上述方法的方法:

>在最顶层中创建导航栏背景视图作为主视图的直接子项.请注意,我将其他所有内容都包含在一个内容视图中.内容视图为红色,导航栏背景视图为半透明白色.

>在导航栏背景视图上添加以下4个约束:0表示左,右和上限制,64表示高度约束.

总结

以上是内存溢出为你收集整理的iOS 8 – 将模糊应用于导航栏和状态栏全部内容,希望文章能够帮你解决iOS 8 – 将模糊应用于导航栏和状态栏所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1107606.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存