xyz hexadecimal from convert color ios swift alpha uicolor

ios - hexadecimal - Ejemplo de colorWithAlphaComponent en Swift



xcode swift uicolor (4)

¿Cuál es la sintaxis correcta para esta función en Swift?

Lo siguiente funciona bien, y colorea el fondo morado:

self.view.backgroundColor = UIColor.purpleColor()

Cuando encadeno la función colorWithAlphaComponent, la vista muestra el alfa correcto por un momento, y luego cambia a un púrpura opaco que es relativamente oscuro:

self.view.backgroundColor = UIColor.purpleColor().colorWithAlphaComponent(0.5)

¿Es esta la función recomendada para agregar un valor alfa a un UIColor?

Además, ¿por qué el mensaje emergente intellisense dice que esta función espera un UIColor como parámetro? P.ej,

self.view.backgroundColor = UIColor.colorWithAlphaComponent(<#UIColor#>)

EDITAR: El comportamiento es extraño. Estoy configurando el color de fondo en un controlador de vista que se está cargando en un modo. Cuando el modal se desliza hacia arriba desde la parte inferior, el alfa es correcto. Cuando el modal termina de cargarse, el color de fondo cambia a opaco?

EDIT 2: El problema no estaba en el código, tanto el código anterior como la sugerencia a continuación aplicaban correctamente el alfa. El problema es la forma en que se presentan los modales: la vista subyacente se está eliminando. Ver:
Vista modal transparente en el controlador de navegación


Intenta algo así para establecer el color

view.backgroundColor = UIColor(red: (64/255.0), green: (54/255.0), blue: (105/255.0), alpha: 1.0)


No es extraño, se está comportando exactamente como debería. Aunque muchos de los métodos de UIColor son métodos de clase, todavía hay algunos métodos de instancia, y este es uno de ellos. De la documentación de UIColor .

colorWithAlphaComponent:

Crea y devuelve un objeto de color que tiene el mismo espacio de color y valores de componente que el receptor, pero tiene el componente alfa especificado.

Entonces, colorWithAlphaComponent: solo cambia el valor alfa de su receptor. Ejemplo:

let purple = UIColor.purpleColor() // 1.0 alpha let semi = purple.colorWithAlphaComponent(0.5) // 0.5 alpha

Y la razón por la que está viendo el autocompletado para este método de instancia en el tipo, es porque Swift le permite usar métodos de instancia como métodos de tipo curry. En el ejemplo que proporcionó, colorWithAlphaComponent realmente devuelve una función que toma un CGFloat como entrada y devuelve un UIColor .

let purple = UIColor.purpleColor() let purpleFunc: (CGFloat -> UIColor) = UIColor.colorWithAlphaComponent(purple)

Por lo tanto, si lo desea, puede llamar al método de tipo que pasa en la instancia que desea modificar, y luego llamar a la función resultante con el alfa que desea aplicar, así.

let purple = UIColor.purpleColor() let purpleTrans = UIColor.colorWithAlphaComponent(purple)(0.5)

Luego, en lo que respecta a los problemas que tiene con el controlador de vista modal, no debe intentar cambiar el alfa de la vista de un controlador de vista modal. Vea esto para más información . En su lugar, debería crear manualmente una vista y agregarla a la jerarquía de vistas de su controlador de vista existente (si es absolutamente necesario modificar su alfa)


Swift 4.0

self.view.backgroundColor = UIColor.black.withAlphaComponent(0.7)


en Swift 3.0

Esto funciona para mí en xcode 8.2.

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

Te puede ayudar.