模糊效果在iOS 7.1上消失

时间:2014-03-27 13:27:18

标签: ios iphone objective-c blur ios7.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属性

设置它

4 个答案:

答案 0 :(得分:2)

可能第二张截图是从iPhone 4拍摄的? 在iPhone 4和iPad 2上,模糊效果被替换为具有透明度的简单样本颜色。

答案 1 :(得分:2)

顺便说一下,值得注意的是,您描述为没有模糊/半透明的图像确实存在。如果您拍摄快照并提高对比度,您可以看到背景中确实存在某些事情。这是你的原创"没有模糊/半透明的图像",我在Photoshop中提高了对比度:

high contrast

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

一目了然

从iOS7.1开始,导航栏似乎没有任何模糊效果了。至少我做了很多测试,通过做新的应用程序示例,它已经没有了。

解决方法(适用于iOS 7.1)

Here a sample使用FXBlurView

这不是很了不起但它工作正常并且可以自定义。我的榜样当然不是最好的。

以前提出的解决方案(在iOS7.1上不起作用)

这是我找回类似效果的解决方案。它可以发布它不使用私有API。但它可能会出现下一次iOS更新的问题,因为它依赖于UINavigationBar的内部结构。

只需在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];

我也建议你使用 AutoLayout 来约束UIToolBar总是它的父亲的大小,轮换等...我没有'这样做是为了让代码简洁明了。

希望它可以帮到你们!