首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS 7.0.3中的条形半透明消失

iOS 7.0.3中的条形半透明消失
EN

Stack Overflow用户
提问于 2013-10-23 06:35:40
回答 1查看 6.5K关注 0票数 36

比较这两张截图:

在iOS 7.0模拟器上完成

以及在iOS 7.0.3 iPhone 4S上所做的工作:

相同的代码和相同的东西!你知道为什么半透明的东西会消失在真正的设备上吗?

我有这段代码来模拟它(我知道它可能很尴尬,也不对,但事实就是这样):

代码语言:javascript
复制
topMenuView = [[UIView alloc] initWithFrame:CGRectMake(self.view.frame.origin.x, 0, self.view.frame.size.width, TOP_BAR_ORIG_HEIGHT)];
topMenuView.clipsToBounds = YES;
UIToolbar *topMenuViewBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, -4, self.view.frame.size.width, TOP_BAR_ORIG_HEIGHT + 4)];
topMenuViewBar.barStyle = UIBarStyleDefault;
topMenuViewBar.barTintColor = [BSFunctions getColorFromHex:@"1ea6ff"];
const CGFloat statusBarHeight = 20;

UIView *underlayView = [[UIView alloc] initWithFrame:CGRectMake(0, -statusBarHeight, topMenuViewBar.frame.size.width, topMenuViewBar.frame.size.height + statusBarHeight)];
[underlayView setAutoresizingMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)];
[underlayView setBackgroundColor:[BSFunctions getColorFromHex:@"1ea6ff"]];
[underlayView setAlpha:0.36f];
[topMenuViewBar insertSubview:underlayView atIndex:1];
UIView *underlayView2 = [[UIView alloc] initWithFrame:CGRectMake(0, -statusBarHeight, topMenuViewBar.frame.size.width, topMenuViewBar.frame.size.height + statusBarHeight)];
[underlayView2 setAutoresizingMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)];
[underlayView2 setBackgroundColor:[BSFunctions getColorFromHex:@"0291ff"]];
[underlayView2 setAlpha:0.36f];
[topMenuViewBar insertSubview:underlayView2 atIndex:2];
[topMenuView addSubview:topMenuViewBar];
[self.view addSubview:topMenuView];

主要的一点是,以前在设备上使用之前工作!但在iOS 7.0.3问世后,情况发生了变化。我在Facebook和Fitocracy iOS应用程序中也注意到了同样的行为。

更新

在Xcode 5.0.1和iOS 7.0.3模拟器上,我们有以下内容(这与您可以看到的iOS 7.0模拟器上的第一个图像不同):

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-23 16:31:59

好的,所以在玩了更多的颜色后,我设法得到了一个类似的外观与模糊!

以前,我在导航栏外观上设置了一个barTintColor,其值如下:

R:17 G:63 B:95 A:1

这在iOS < 7.0.3中很好,导航条中的输出颜色(带有模糊效应)实际上是:

R:62 G:89 B:109

从iOS 7.0.3开始,barTintColor似乎考虑了我们设置的颜色的alpha值。这意味着导航条实际上输出了一个17,63,95的实色,而且没有模糊效果。

获得模糊效果的关键是在barTintColor中设置一个alpha <1。

经过大量的猜测和尝试不同的RGB值,我成功地从nav (和制表符)栏中获得了完全相同的RGB输出,使用以下RGBA:

R:4.5 G:61.6 B:98 A:0.65

它看起来不像有一个神奇的比率,适用于以前的颜色,以获得新的一个。

无论如何,我实际上已经拒绝了今天下午被批准的二进制文件,并且重新提交了这些新值,这样用户的应用程序就不会变得丑陋:)

希望这能有所帮助。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19534473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档