条形图半透明度在iOS 7.0.3中消失了

Ser*_*yov 36 iphone cocoa-touch ios ios7

比较两个截图:

在iOS 7.0模拟器上完成

在此输入图像描述

在iOS 7.0.3 iPhone 4S上完成的那个:

在此输入图像描述

相同的代码在这里和那里和相同的东西!知道为什么半透明在真实设备上消失了吗?

我有这个代码来模拟它(我知道它可能很尴尬而且不对,但它是这样的):

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];
Run Code Online (Sandbox Code Playgroud)

重点是它曾经在设备上工作过!但在iOS 7.0.3问世之后,它发生了变化.我注意到Facebook和Fitocracy iOS应用程序中的相同行为.

UPDATE

在带有iOS 7.0.3模拟器的Xcode 5.0.1上,我们有这个(这与iOS 7.0模拟器上的第一个图像不同,如您所见):

在此输入图像描述

Mut*_*tix 17

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

以前,我在导航栏外观上设置了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值,我设法从导航(和标签)栏获得完全相同的RGB输出,使用以下RGBA:

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

它看起来不像应用于前一种颜色以获得新颜色的魔术比率.

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

希望这可以帮助.

  • 它似乎在iOS 7.1中再次发生了变化 (4认同)