2012-03-06 2 views
20

J'ai un UIView avec un alpha de 0,5 J'ai ajouté un sous-vue avec un alpha de 1.Voir avec une faible alpha - alpha élevé avec vue secondaire

Le sous-vue semble hériter de la valeur alpha du parent. Y at-il un moyen de rendre la sous-vue plus opaque que sa vue parente?

Code

ressemble à ceci:

CGRect promptFrame = CGRectMake(55, 80, 180, 50); 
UIView *inputPrompt = [[UIView alloc] initWithFrame: promptFrame]; 
[inputPrompt setBackgroundColor: [UIColor darkGrayColor]]; 
[inputPrompt setAlpha: .5]; 
inputPrompt.layer.cornerRadius = 8; 
inputPrompt.layer.masksToBounds = YES; 

CGRect fileTextFieldFrame = CGRectMake(10, 15, 150, 25); 
UITextField *filePrompt = [[UITextField alloc] initWithFrame: fileTextFieldFrame]; 
[filePrompt setBorderStyle:UITextBorderStyleRoundedRect]; 
[filePrompt setClearButtonMode:UITextFieldViewModeWhileEditing]; 
[filePrompt setBackgroundColor: [UIColor whiteColor]]; 
[filePrompt setAlpha: 1]; 

Le résultat ressemble à ceci: enter image description here

Je voudrais pouvoir voir le bouton ci-dessous le UIView gris, mais pas au-dessous du UITextField blanc. Comment puis-je faire cela?

Répondre

79

Définissez la couleur d'arrière-plan de inputPrompt et non son alpha directement.

[inputPrompt setBackgroundColor:[[UIColor darkGrayColor] colorWithAlphaComponent:0.5]]; 
//[inputPrompt setAlpha: .5]; 
+1

Cela a fonctionné correctement. Merci. – StoneBreaker

+1

+1 et merci beaucoup .. :) – Sarah

+1

+1 fonctionne très bien .. –