titletextattributes para descargar color bar apple ios swift

ios - para - ¿Cómo puedo usar UIColorFromRGB en Swift?



titletextattributes swift 4 (18)

Aquí hay una versión Swift de esa función (para obtener una representación UIColor de un valor UInt ):

func UIColorFromRGB(rgbValue: UInt) -> UIColor { return UIColor( red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0, green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0, blue: CGFloat(rgbValue & 0x0000FF) / 255.0, alpha: CGFloat(1.0) ) } view.backgroundColor = UIColorFromRGB(0x209624)

En Objective-C, usamos este código para establecer códigos de color RGB para las vistas:

#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0] view.backgroundColor=UIColorFromRGB(0x209624);

¿Cómo puedo usar esto en Swift?


En Swift3, si está comenzando con un color que ya ha elegido, puede obtener el valor RGB en línea ( http://imagecolorpicker.com ) y usar los valores definidos como UIColor. Esta solución los implementa como fondo:

@IBAction func blueBackground(_ sender: Any) { let blueColor = UIColor(red: CGFloat(160/255), green: CGFloat(183.0/255), blue: CGFloat(227.0/255), alpha: 1) view.backgroundColor = blueColor

@Vadym mencionó esto arriba en los comentarios y es importante definir el CGFloat con un solo punto decimal


Eso se puede hacer simplemente usando esta inicialización

view.backgroundColor = UIColor(hex: "067AB5")



Esto se trabajó para mí en forma rápida. Prueba esto

bottomBorder.borderColor = UIColor (red: 255.0/255.0, green: 215.0/255.0, blue: 60/255.0, alpha: 1.0).CGColor


He usado lo siguiente a la ligera.

let appRedColor = UIColor(red: 200.0/255.0, green: 16.0/255.0, blue: 46.0/255.0, alpha: 1.0) let appSilverColor = UIColor(red: 236.0/255.0, green: 236.0/255.0, blue: 236.0/255.0, alpha: 1.0) let appWhiteColor = UIColor(red: 255.0/255.0, green: 255.0/255.0, blue: 255.0/255.0, alpha: 1.0) let appNavyColor = UIColor(red: 19.0/255.0, green: 41.0/255.0, blue: 75.0/255.0, alpha: 1.0)


La forma más sencilla de agregar color mediante programación es mediante el uso de ColorLiteral .

Simplemente agregue la propiedad ColorLiteral como se muestra en el ejemplo, Xcode le solicitará una lista completa de colores que puede elegir. La ventaja de hacerlo es un código menor, agregue valores HEX o RGB . También obtendrá los colores utilizados recientemente en el guión gráfico.

Ejemplo: self.view.backgroundColor = ColorLiteral


La respuesta de Nate Cook es absolutamente correcta. Solo para una mayor flexibilidad, tengo las siguientes funciones en mi paquete:

func getUIColorFromRGBThreeIntegers(red: Int, green: Int, blue: Int) -> UIColor { return UIColor(red: CGFloat(Float(red) / 255.0), green: CGFloat(Float(green) / 255.0), blue: CGFloat(Float(blue) / 255.0), alpha: CGFloat(1.0)) } func getUIColorFromRGBHexValue(value: Int) -> UIColor { return getUIColorFromRGBThreeIntegers(red: (value & 0xFF0000) >> 16, green: (value & 0x00FF00) >> 8, blue: value & 0x0000FF) } func getUIColorFromRGBString(value: String) -> UIColor { let str = value.lowercased().replacingOccurrences(of: "#", with: ""). replacingOccurrences(of: "0x", with: ""); return getUIColorFromRGBHexValue(value: Int(str, radix: 16)!); }

Y así es como los uso:

// All three of them are identical: let myColor1 = getUIColorFromRGBHexValue(value: 0xd5a637) let myColor2 = getUIColorFromRGBString(value: "#D5A637") let myColor3 = getUIColorFromRGBThreeIntegers(red: 213, green: 166, blue: 55)

Espero que esto ayude Todo se prueba con Swift 3 / Xcode 8.


No puede usar macros complejas como #define UIColorFromRGB(rgbValue) de forma rápida. El reemplazo de macro simple en swift es constantes globales como

let FADE_ANIMATION_DURATION = 0.35

Sin embargo, las macros complejas que aceptan parámetros no son compatibles con swift. podrías usar funciones en su lugar

Las macros complejas se usan en C y Objective-C, pero no tienen contraparte en Swift. Las macros complejas son macros que no definen constantes, incluidas las macros parecidas a funciones entre paréntesis. Utiliza macros complejas en C y Objective-C para evitar restricciones de verificación de tipos o para evitar volver a escribir grandes cantidades de código repetitivo. Sin embargo, las macros pueden dificultar la depuración y la refactorización. En Swift, puede usar funciones y genéricos para lograr los mismos resultados sin ningún compromiso. Por lo tanto, las macros complejas que se encuentran en los archivos fuente C y Objective-C no están disponibles para su código Swift.

Extracto del uso de swift con cacao y objetivo C

Compruebe @Nate Cooks responden para la versión Swift de esa función que se utilizará aquí


Para Xcode 9 , use UIColor con valores RGB.

shareBtn.backgroundColor = UIColor( red: CGFloat(92/255.0), green: CGFloat(203/255.0), blue: CGFloat(207/255.0), alpha: CGFloat(1.0) )

Avance:

Consulte la documentación adicional de Apple en UIColor .


Puedes usar esto:

//The color RGB #85CC4B let newColor = UIColor(red: CGFloat(0x85)/255 ,green: CGFloat(0xCC)/255 ,blue: CGFloat(0x4B)/255 ,alpha: 1.0)


Puedo ver que ya ha sido respondida pero aún espero que un trazador de líneas lo ayude de una mejor manera.

import UIKit let requiredColor = UIColor(red: CGFloat((rgbValue & 0xFF0000) >> 16)/255, green: CGFloat((rgbValue & 0x00FF00) >> 8)/255, blue: CGFloat(rgbValue & 0x0000FF)/255, alpha :1)

Actualizado: Cambios realizados según el ejemplo explicado por el autor de la pregunta para proporcionar valores hexadecimales


Realmente me gustó la respuesta de Nate Cook, pero quería algo un poco más idiomático. Creo que este es un buen caso de uso para un inicializador de conveniencia a través de una extensión personalizada.

// UIColorExtensions.swift import Foundation import UIKit extension UIColor { convenience init(rgb: UInt) { self.init( red: CGFloat((rgb & 0xFF0000) >> 16) / 255.0, green: CGFloat((rgb & 0x00FF00) >> 8) / 255.0, blue: CGFloat(rgb & 0x0000FF) / 255.0, alpha: CGFloat(1.0) ) } }

Esto ahora se puede usar así:

view.backgroundColor = UIColor(rgb: 0x209624)

Solo recomendaría parchear parches de UIKit como este en su propio código de cliente, no en bibliotecas.


Yo quería poner

cell.backgroundColor = UIColor.colorWithRed(125/255.0, green: 125/255.0, blue: 125/255.0, alpha: 1.0)

pero eso no funcionó.

Entonces usé:
Para Swift

cell.backgroundColor = UIColor(red: 0.5, green: 0.5, blue: 0.5, alpha: 1.0)

Esta es la solución que encontré.


agregando una opción rápida 3:

cell.layer.borderColor = UIColor (red: 192.0/255.0, green: 192.0/255.0, blue: 197/255.0, alpha: 1.0).cgColor


solución para el formato argb:

// UIColorExtensions.swift import UIKit extension UIColor { convenience init(argb: UInt) { self.init( red: CGFloat((argb & 0xFF0000) >> 16) / 255.0, green: CGFloat((argb & 0x00FF00) >> 8) / 255.0, blue: CGFloat(argb & 0x0000FF) / 255.0, alpha: CGFloat((argb & 0xFF000000) >> 24) / 255.0 ) } }

uso:

var clearColor: UIColor = UIColor.init(argb: 0x00000000) var redColor: UIColor = UIColor.init(argb: 0xFFFF0000)


Si está comenzando desde una cadena (no hexadecimal) esta es una función que toma una cadena hexadecimal y devuelve un UIColor.
(Puede ingresar cadenas hexagonales con cualquier formato: #ffffff o ffffff )

Uso:

var color1 = hexStringToUIColor("#d3d3d3")

Swift 4:

func hexStringToUIColor (hex:String) -> UIColor { var cString:String = hex.trimmingCharacters(in: .whitespacesAndNewlines).uppercased() if (cString.hasPrefix("#")) { cString.remove(at: cString.startIndex) } if ((cString.count) != 6) { return UIColor.gray } var rgbValue:UInt32 = 0 Scanner(string: cString).scanHexInt32(&rgbValue) return UIColor( red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0, green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0, blue: CGFloat(rgbValue & 0x0000FF) / 255.0, alpha: CGFloat(1.0) ) }

Swift 3:

func hexStringToUIColor (hex:String) -> UIColor { var cString:String = hex.trimmingCharacters(in: .whitespacesAndNewlines).uppercased() if (cString.hasPrefix("#")) { cString.remove(at: cString.startIndex) } if ((cString.characters.count) != 6) { return UIColor.gray } var rgbValue:UInt32 = 0 Scanner(string: cString).scanHexInt32(&rgbValue) return UIColor( red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0, green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0, blue: CGFloat(rgbValue & 0x0000FF) / 255.0, alpha: CGFloat(1.0) ) }

Swift 2:

func hexStringToUIColor (hex:String) -> UIColor { var cString:String = hex.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet() as NSCharacterSet).uppercaseString if (cString.hasPrefix("#")) { cString = cString.substringFromIndex(cString.startIndex.advancedBy(1)) } if ((cString.characters.count) != 6) { return UIColor.grayColor() } var rgbValue:UInt32 = 0 NSScanner(string: cString).scanHexInt(&rgbValue) return UIColor( red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0, green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0, blue: CGFloat(rgbValue & 0x0000FF) / 255.0, alpha: CGFloat(1.0) ) }


Fuente: arshad/gist:de147c42d7b3063ef7bc


myLabel.backgroundColor = UIColor(red: 50.0/255, green: 150.0/255, blue: 65.0/255, alpha: 1.0)