color swift uicolor asset-catalog ios11 xcode9-beta

swift - navigationitem title color



¿Cómo podemos usar los conjuntos de colores del catálogo de activos? (4)

Version corta

Agregue un conjunto de colores a un catálogo de activos, UIColor(named: "MyColor") y configure su color en el inspector de atributos, luego UIColor(named: "MyColor") en su código con UIColor(named: "MyColor") .

Instrucciones completas

  1. En el visor del catálogo de activos, haga clic en el botón más en la parte inferior derecha del panel principal y elija Nuevo conjunto de colores

  2. Haga clic en el cuadrado blanco y seleccione el Inspector de atributos (el icono situado más a la derecha en el panel derecho)

  3. Desde allí puedes nombrar y elegir tu color.

  4. Para usarlo en su código, UIColor(named: "MyColor") con UIColor(named: "MyColor") . Esto devuelve una opción, por lo que tendrá que desenvolverlo en la mayoría de los casos (este es probablemente uno de los pocos casos en los que es deseable desenrollar la fuerza, dado que sabe que el color existe en su catálogo de activos).

Usualmente uso UIColors personalizados en iOS usando extensiones con Swift, pero ahora con iOS11 / XCode9 podemos crear conjuntos de colores. ¿Cómo podemos usarlos?

Actualización - Sugerencia

Como @Cœur dice que podemos arrastrar y soltar de color, y usarlo como un objeto UIColor y una posible solución podría ser usarlo como una extensión:

O como una constante:

Ahora quiero saber si podemos acceder a ellos como un UIImage acceso a una imagen de activo o no, como:

UIImage(named: "image-name") -> UIColor(named: "color-name")


(respuesta breve a la actualización de la pregunta: hay UIColor(named: "MyColor") en Xcode 9.0)

Respondiendo a la pregunta original:

  1. creas tu conjunto de colores

  1. encuentras tu color entre tus fragmentos y lo arrastras y sueltas

  1. se traducirá a un color literal al mirar el código fuente:

    #colorLiteral(red: 0, green: 0.6378085017, blue: 0.8846047521, alpha: 1)

¿Notaste cómo los valores de rojo, verde y azul son diferentes? Es porque los definí usando Color Space Display P3 , pero el colorLiteral usa Color Space sRGB .


// iOS let color = UIColor(named: "SillyBlue") // macOS let color = NSColor(named: "SillyBlue")