模糊效果在iOS 7.1上消失了

出于某种原因,模糊效果从iOS 7.1上的应用程序中消失了。 我在iOS 7.0.x的设备上运行相同的代码,另一个运行在7.1上。 以下是我所看到的:

iOS 7.0.x iOS 7.0.x

iOS 7.1 iOS 7.1

可能是什么问题,以及如何解决这个问题? (显然我想保持模糊效果:))

更新:

这是我设定的颜色:

[UIColor colorWithRed:255.0f/255.0f green:201.0f/255.0f blue:0.0f/255.0f alpha:1.0]; 

我从barTintColor属性中设置它

可能第二个屏幕截图是从iPhone 4中获取的? 在iPhone 4和iPad 2上,模糊效果被replace为具有透明度的简单样本颜色。

顺便说一下,值得注意的是,你描述的没有模糊/半透明的图像实际上是这样做的。 如果你拍摄这张照片并加大对比度,你可以看到背景中实际上正在发生某些事情。 这里是你原来的“不模糊/半透明的图像”,我在Photoshop中碰撞对比:

高对比度

除非你操作图像,否则肉眼几乎看不到,但模糊/半透明实际上是存在的。

Settings > General > Increase Contrast > Reduce Transparency可能在7.1设备上启用。

乍看上去

从iOS7.1开始,导航栏似乎不再有模糊的效果。 至less我跑了很多testing,通过做新的应用程序示例,它不再有了。

解决方法(在iOS 7.1上工作)

这里是一个使用FXBlurView 的示例

这不是了不起,但它工作正常,可定制。 我的例子当然不是最好的。

以前的解决schemebuild议(不适用于iOS7.1)

这是我的解决scheme,find一个类似的效果。 发行它没有使用私人API是好的。 但是由于它依赖于UINavigationBar内部结构,所以它可能会与iOS的下一个更新有关。

只需在viewDidLoad做到这一点,或者因为它的工作原因,

 // First we make the background's navigation bar totally translucent self.navigationController.navigationBar.barTintColor = [UIColor clearColor]; [self.navigationController.navigationBar setBackgroundImage:[UIImage imageWithColor:[UIColor clearColor]] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault]; // Then we create UIToolBar, which are still using blur effect UIToolbar *tab = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 64)]; // We add it the barTintColor we want, works the same as since iOS 7.0.3, don't forget alpha value tab.barTintColor = [UIColor colorWithRed:0 green:1 blue:0 alpha:0.2]; // And finally we add it to the background view of UINavigationBar... but it can change with future release of iOS. Be aware ! [[self.navigationController.navigationBar.subviews firstObject] addSubview:tab]; 

我也build议你使用AutoLayout来限制UIToolBar始终是它的父母的大小,旋转等…我没有这样做,让代码简洁。

希望它可以帮助你们!