2013-10-23 7 views
37

Vergleichen Sie die beiden Screenshots:Bar Transluzenz in iOS 7.0.3 gegangen

Geschehen auf iOS 7.0 Simulator

enter image description here

Und das eine getan auf iOS 7.0.3 iPhone 4S:

enter image description here

Der gleiche Code hier und da und das gleiche Zeug! Irgendeine Idee warum die Transluzenz auf dem echten Gerät verschwunden ist?

Ich habe diesen Code zu simulieren (ich weiß es wahrscheinlich umständlich ist und nicht richtig, aber das ist, wie es ist):

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]; 

Der wichtigste Punkt ist es vor auf dem Gerät zu arbeiten, verwendet! Aber nachdem iOS 7.0.3 herauskam, hat sich das geändert. Ich merke das gleiche Verhalten in Facebook und Fitocracy iOS Apps.

UPDATE

Auf Xcode 5.0.1 mit iOS 7.0.3 Simulator haben wir dies (die aus dem ersten Bild auf iOS 7.0 Simulator unterschiedlich ist, wie Sie sehen können):

enter image description here

+1

Haben Sie die Bewegung und Sachen in der Zugänglichkeit in Ihrem iPhone ausgeschaltet? – Fogmeister

+0

Wie Fogmeister vorgeschlagen hat, überprüfen Sie die Einstellungen für [Zugänglichkeit> Kontrast erhöhen] (http://www.macworld.com/article/2048738/get-to-know-ios-7-changes-in-the-settings-app.html), die Transluzenz reduziert. –

+0

@Fogmeister Nein, es wurden keinerlei Änderungen vorgenommen. Und ich denke, es gibt keine solche Option am Simulator. –

Antwort

17

OK, nachdem ich mit den Farben ein bisschen mehr herumgespielt habe, gelang es mir, mit der Unschärfe ähnlich zu erscheinen!

Früher war ich ein barTintColor in der Navigationsleiste Aussehen Einstellung, die die folgenden Werte hatten:

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

Dies war in Ordnung in IOS < 7.0.3, und die Ausgabefarbe in der Navigationsleiste (mit dem Unschärfe-Effekt) war eigentlich:

R: 62 G: 89 B: 109

Seit iOS 7.0.3 scheint der barTintColor den Alpha-Wert der von uns festgelegten Farbe zu berücksichtigen. Dies bedeutete, dass die Nav-Leiste tatsächlich eine feste Farbe 17,63,95 ausgab, und es gab keinen Unschärfe-Effekt.

Der Schlüssel, um den Unschärfe-Effekt zurück zu bekommen, ist ein Alpha < 1 in der barTintColor.

Nach vielen Mutmaßungen und unterschiedliche RGB-Werte versucht, gelang es mir, die genau die gleichen RGB-Ausgang von der nav (und Reitern) bar zu erhalten, die folgende RGBA mit:

R: 4,5 G: 61,6 B: 98 A: 0.65

Es sieht nicht so aus, als ob ein magisches Verhältnis auf die vorherige Farbe angewendet werden müsste, um das neue zu erhalten.

Auf jeden Fall habe ich abgelehnt tatsächlich die Binärdatei, die an diesem Nachmittag genehmigt wurde, und haben mit diesen neuen Werten erneut vorgelegt, so dass Benutzer nicht eine hässliche App bekommen :)

Hoffnung, das hilft.

+0

So erhalten Sie tatsächlich einen Unschärfe-Effekt mit diesem? Wir erhalten nur eine durchsichtige Ansicht, wenn wir das Alpha der barTintColor ändern ... – jjxtra

+0

Es gibt einen Unschärfeeffekt ja. Ich fand Alpha-Werte zwischen 0,5 und 0,7 schien die besten Unschärfe Ergebnisse zu geben. Ich werde meinen Beitrag in Kürze mit Screenshots aktualisieren. – Mutix

+0

Ok die Alpha-Farbe ändert Dinge, aber die Bewegung der Unschärfe-Ansicht verursacht wirklich schlechtes Flimmern – jjxtra