36 votes

La transparence de la barre a disparu dans iOS 7.0.3

Comparer les deux captures d'écran:

Fait sur iOS 7.0 simulateur

enter image description here

Et l'on fait sur iOS 7.0.3 iPhone 4S:

enter image description here

Même code, ici et là, et même des trucs! Aucune idée de pourquoi la transparence est allé sur le périphérique réel?

J'ai ce code pour simuler (je sais que c'est probablement maladroit et pas juste mais c'est comme ça):

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

Le point principal est qu'il marchait avant sur l'appareil! Mais après iOS 7.0.3 est sorti, elle a changé. J'ai remarqué le même comportement dans Facebook et Fitocracy applications iOS.

Mise à JOUR

Sur Xcode 5.0.1 avec iOS 7.0.3 simulateur, nous avons ce (qui est différente de la première image sur iOS 7.0 simulateur comme vous pouvez le voir):

enter image description here

17voto

Mutix Points 3621

OK, donc après avoir joué un peu avec les couleurs un peu plus, j'ai réussi à obtenir une sorte semblable d'aspect avec le flou!

Auparavant, j'ai été la mise un barTintColor sur la barre de navigation de l'apparence qui a les valeurs suivantes:

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

C'était bien dans iOS < 7.0.3, et la sortie de la couleur dans la barre de navigation (avec l'effet de flou) a été fait:

R:62 G:89 B:109

Depuis iOS 7.0.3, la barTintColor semble prendre en compte la valeur alpha de la couleur que nous avons définie. Cela signifie que la barre de navigation a été en fait la sortie d'un solide de couleur 17,63,95, et il n'y avait aucun effet de flou.

La clé pour obtenir l'effet de flou en arrière est un paramètre alpha < 1 dans le barTintColor.

Après beaucoup de travail suppose, en essayant différentes valeurs RVB, j'ai réussi à obtenir exactement la même sortie RVB de la valeur liquidative (et l'onglet de la barre, à l'aide de la suite RGBA:

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

Il ne ressemble pas il y a une magie ratio à appliquer à la couleur précédente pour obtenir la nouvelle.

De toute façon en fait, j'ai rejeté le binaire qui a approuvé cet après-midi, et de nouveau avec ces nouvelles valeurs, de sorte que l'utilisateur n'obtenez pas un vilain app :)

Espérons que cette aide.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X