ios uiview alpha

iOS controla el comportamiento alfa de UIView para subvistas



alpha (3)

La propiedad alfa de IOS es heredada por sus subvistas. Si estamos configurando alfa 0.3 para la vista roja, ambas subvistas tendrán la alfa = 0.3. No hay forma de detener la subvista para heredar el valor alfa de su súper vista.

La solución podría ser. Puedes configurar el color de Red view con alpha 0.3. La propiedad del color no será heredada por su subvista. Puedes usar el código de abajo

[redView setBackgroundColor:[UIColor colorWithHue:238.0f/255.0f saturation:24.0f/255.0f brightness:24.0f/255.0f alpha:0.3]];

En mi ejemplo, tengo 3 vistas: una vista roja que contiene dos vistas en blanco. Cambié el alfa de la vista del contenedor rojo a 0,3 y esto sucede (mire la imagen, el resultado actual).

Al ver esto, solo puedo asumir (dime si estoy equivocado) que establecer el alfa de una vista también configurará todos los alfas de sus subvistas. Mi pregunta es: ¿hay una manera de simplemente decirle a la vista roja que actúe como un todo para que establecer su alfa dé algo que se parece al resultado deseado (en la imagen)?

Esto es lo que parece sin ningún alfa:


Para elaborar la respuesta de Mark: si establece UIViewGroupOpacity en Info.plist, cambiará el comportamiento de todas las vistas en su aplicación, si está interesado en corregir solo la representación de esta vista en particular, también puede usar este fragmento de código:

redContainerView.layer.shouldRasterize = YES; // No setting rasterizationScale, will cause blurry images on retina. redContainerView.layer.rasterizationScale = [[UIScreen mainScreen] scale];


Echa un vistazo a las posibles claves UIKit para Info.plist, específicamente UIViewGroupOpacity .

UIViewGroupOpacity (Boolean - iOS) especifica si las subcapas Core Animation heredan la opacidad de su superlayer.

Info.plist UIKit Keys