出于某种原因,模糊效果已从iOS 7.1上的应用程序消失。我在iOS 7.0.x的设备上运行相同的代码,在7.1的另一个设备上运行相同的代码。这就是我所看到的:
iOS 7.0.x
iOS 7.1
可能是什么问题以及如何解决这个问题? (显然我想保持模糊效果:))
更新:
这是我设定的颜色:
[UIColor colorWithRed:255.0f/255.0f
green:201.0f/255.0f
blue:0.0f/255.0f
alpha:1.0];
我从barTintColor
属性
答案 0 :(得分:2)
可能第二张截图是从iPhone 4拍摄的? 在iPhone 4和iPad 2上,模糊效果被替换为具有透明度的简单样本颜色。
答案 1 :(得分:2)
顺便说一下,值得注意的是,您描述为没有模糊/半透明的图像确实存在。如果您拍摄快照并提高对比度,您可以看到背景中确实存在某些事情。这是你的原创"没有模糊/半透明的图像",我在Photoshop中提高了对比度:
除非你操纵图像,否则肉眼几乎看不到它,但模糊/半透明实际上是存在的。
答案 2 :(得分:1)
Settings > General > Increase Contrast > Reduce Transparency
可能已在7.1设备上启用。
答案 3 :(得分:0)
一目了然
从iOS7.1开始,导航栏似乎没有任何模糊效果了。至少我做了很多测试,通过做新的应用程序示例,它已经没有了。
解决方法(适用于iOS 7.1)
这不是很了不起但它工作正常并且可以自定义。我的榜样当然不是最好的。
以前提出的解决方案(在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
总是它的父亲的大小,轮换等...我没有'这样做是为了让代码简洁明了。
希望它可以帮到你们!