2012-03-06 27 views
20

Tengo una UIView con un alfa de 0,5 He añadido una vista secundaria con un alfa de 1.con baja alfa - subvista con alta alfa

Subvista parece heredar el valor alfa de los padres. ¿Hay alguna manera de hacer que la subvista sea más opaca que su vista principal?

código es el siguiente:

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

El resultado es el siguiente: enter image description here

Me gustaría ser capaz de ver el botón debajo del gris UIView pero no por debajo del blanco UITextField. ¿Cómo hago esto?

Respuesta

79

Establezca el alfa del color de fondo inputPrompt no alfa directamente.

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

Esto funcionó a la perfección. Gracias. – StoneBreaker

+1

+1 y muchas gracias .. :) – Sarah

+1

+1 funciona muy bien .. –