iOS 7.1 上模糊效果消失了

8
由于某种原因,我的应用在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属性中进行了设置。


也许你可以展示一下你运行的相同代码 - Tancrede Chazallet
@AncAinu 编辑了帖子并附上了使用的代码。 - Sergey Katranuk
@SergeyCatraniuc 你试过我的解决方案了吗? - Tancrede Chazallet
@holex 是的,我非常清楚。正如之前的评论中所写的那样,我正在使用5c和5s手机,它们应该支持模糊效果。 - Sergey Katranuk
显示剩余4条评论
4个回答

2

第二张截图可能是从iPhone 4上拍摄的? 在iPhone 4和iPad 2上,模糊效果被简单的透明颜色所替代。


苹果在iOS 7.1中对模糊效果进行了更改。请将iPhone 5C升级到iOS 7.1。 - Fry
2
好的,那并不能真正解决我的问题。我想让模糊效果在7.1上运行。 - Sergey Katranuk
1
尝试将颜色的alpha值设为小于1。 - Fry
没试过,等一下。 - Sergey Katranuk

2
顺便说一下,值得注意的是你描述为没有模糊/半透明的图像实际上是有的。如果你拍下那张快照并增加对比度,你会发现背景实际上有点模糊/半透明。这是你原始的“无模糊/半透明图像”,我在Photoshop中增加了对比度: 高反差 肉眼几乎看不见,除非你调整图像,但模糊/半透明确实存在。

1
我同意。我认为他们只是稍微减少了半透明模糊效果。在我看来,这样做是正确的。 :) - matt
是的,我注意到它并不完全稳定。我也尝试了你的解决方案,但在我的安装有7.1的5s上并没有起作用。实际上改变alpha根本没有任何区别:( - Sergey Katranuk
你用什么设备和iOS版本拍摄了这些截图? - Sergey Katranuk
1
我的错。在7.1设备上,“alpha”设置没有效果。我已经从我的答案中删除了它。 - Rob

1
7.1设备上可能启用了“设置 > 通用 > 增强对比度 > 减少透明度”的选项。

0

一览

自iOS7.1以来,导航栏似乎不再具有模糊效果。至少我进行了许多测试,通过创建新的应用程序示例,它不再具有该效果。

解决方法(适用于iOS 7.1)

这里是一个示例使用FXBlurView

虽然不是非常出色,但它可以很好地工作,并且可以自定义。我的示例肯定不是最好的。

之前提出的解决方案(在iOS7.1上无法使用)

这是我找回类似效果的解决方案。它对于发布来说没有问题,因为它不使用私有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];

我也建议您使用AutoLayoutUIToolBar约束为始终与其父视图相同的大小,以适应旋转等操作... 我没有这样做是为了让代码简短明了。

希望能对大家有所帮助!


嘿,Anc,谢谢你的提示,我稍后会试一下。但这个方法有点太hackie了,不太符合我的口味。即使它能够工作,我也不会使用它(不值得 :))。但如果它能够工作,我会接受你的答案 ;) - Sergey Katranuk
我猜你除了我的建议(甚至更棘手的建议)没有其他选择。 - Tancrede Chazallet
不可能的,我之前尝试过了才在这里写的。你可以在一个新项目中尝试(简单视图),你会发现它可以工作。然后你就可以找出与你的应用程序有何不同。 - Tancrede Chazallet
我的错误,我最终弄混了设备。 - Tancrede Chazallet
没有问题。但我开始相信,从7.1开始,真的没有办法影响模糊了。太遗憾了 :( - Sergey Katranuk
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接