Pregunta

Así que ahora tengo una UIView con un UILabel en ella. I desea que el fondo tiene una opacidad <1,0 y la etiqueta para tener una opacidad de 1,0. Sin embargo, desde alfas se propagan por la jerarquía de vistas, la etiqueta termina con una opacidad <1.0 también.

¿Hay alguna forma de hacer lo que quiera sin que el UILabel una vista secundaria de otra vista ??

¿Fue útil?

Solución

Sólo hay que establecer el color de fondo para ser semitransparente:

view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.5f];

O, en Swift:

view.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.5)

O, Swift 3:

view.backgroundColor = UIColor.black.withAlphaComponent(0.5)

Tenga en cuenta que, en este caso particular, UIColor(white: 0, alpha: 0.5) es más conciso, pero colorWithAlphaComponent trabajará en general.

Otros consejos

Además de estar disponible en el código, puede hacer esto con bastante facilidad a partir del IB, así:

  1. En el guión gráfico, seleccione la vista que desea editar;
  2. En el panel derecho, asegúrese de que se abra el inspector de atributos;
  3. Haga clic en el lado derecho del "fondo" cuadro desplegable y elegir la opción "Otros ..."; se abrirá un cuadro de diálogo de selección de color;
  4. Cambie la "opacidad" en la parte inferior para ajustar la opacidad del color de fondo.

Puede configurar el color de fondo de la UIView con un color semitransparente o hacer la propia imagen semitransparente. De esta manera es una propiedad de la opinión de que es transparente, no la vista en sí.

Puede utilizar esta:

self.view.layer.opacity=0.5
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top