Quiero hacer mis propios colores RGB que son UIColors
y que podría usar como UIColor blackColor
o cualquier otro.¿Cómo puedo hacer mis propios UIColor personalizados que no sean los preestablecidos?
Respuesta
Usted puede escribir su propio método para la clase UIColor utilizando categorías.
#import <UIKit/UIKit.h>
@interface UIColor(NewColor)
+(UIColor *)MyColor;
@end
#import "UIColor-NewColor.h"
@implementation UIColor(NewColor)
+(UIColor *)MyColor {
return [UIColor colorWithRed:0.0-1.0 green:0.0-1.0 blue:0.0-1.0 alpha:1.0f];
}
De esta manera, se crea un nuevo color y ahora se le puede llamar como
[UIColor MyColor];
También puede aplicar este método para obtener color al azar. Espero que esto ayude.
Utilice initWithRed:green:blue:alpha: o colorWithRed:green:blue:alpha:.
Por ejemplo:
// create new autoreleased UIColor object named "myColor"
UIColor *myColor = [UIColor colorWithRed:0.5f green:0.5f blue:0.5f alpha:1.0f];
// create new retained UIColor object named "myColor2"
UIColor *myColor2 = [[UIColor alloc] initWithRed:0.5f green:0.5f blue:0.5f alpha:1.0f];
Pero habría que permitir que diga algo como: UIColor * orangeColor = [alloc UIColor] initWithRed: greenLblue: alpha:] ; y luego úselo más tarde? – Jaba
Sí, con la sintaxis correcta. Agregué ejemplos de código. Asegúrese de administrar adecuadamente la memoria: si utiliza el constructor de conveniencia de clase, entonces necesita retener el objeto de color o establecer una propiedad retenida en él. – gerry3
Hay un par de maneras de crear un color.
Prefiero usar el método RGB. Si usa los valores RGB, divídalos por 255 (no recuerdo por qué, pero sé que debe hacerlo).
float rd = 225.00/255.00;
float gr = 177.00/255.00;
float bl = 140.00/255.00;
[label setTextColor:[UIColor colorWithRed:rd green:gr blue:bl alpha:1.0]];
Espero que esto ayude .....
Los valores rojo, verde, azul y alfa que se pasan al constructor deben estar entre 0.0 y 1.0. – gerry3
Necesitaba definir un par de colores personalizados para usar en varios lugares de una aplicación, pero los colores son específicos de esa aplicación. Pensé en usar categorías, pero no quería tener archivos adicionales para incluir cada vez. Por lo tanto, he creado un par de métodos estáticos en mi delegado de la aplicación.
En MyAppDelegate.h
+ (UIColor*)myColor1;
En MyAppDelegate.m
+ (UIColor*)myColor1 {
return [UIColor colorWithRed:26.0f/255.0f green:131.0f/255.0f blue:32.0f/255.0f alpha:1.0f];
}
que tienen un método por el color, o usted podría hacer un solo método y añadir un parámetro.
puedo luego usarlo en cualquier lugar de la aplicación de la siguiente manera:
myView.backgroundColor = [MyAppDelegate myColor1];
espero que esto ayude a alguien más.
Los delegados de la aplicación quieren ser buenos. Pero luego aprenden sobre cosas. Aprenden sobre cosas que no les incumben saber. – griotspeak
[UIColor colorWithRed:51.0/255.0, green:0.0, blue:153.0/255.0];
Mientras se utiliza un valor de punto flotante en su división que no tienen nada para echar. Asegúrese de usar valores de coma flotante. Por ejemplo: 33/255 = 0
. Que se volverá negro
para SWIFT:
let swiftColor = UIColor(red: 1, green: 165/255, blue: 233, alpha: 1)
Swift 3
Crear una extensión Swift le permite definir sus propios colores personalizados y utilizarlos como el construido en colores.
UIColor + CustomColor.rápida
import UIKit
extension UIColor {
class var customGreen: UIColor {
let darkGreen = 0x008110
return UIColor.rgb(fromHex: darkGreen)
}
class func rgb(fromHex: Int) -> UIColor {
let red = CGFloat((fromHex & 0xFF0000) >> 16)/0xFF
let green = CGFloat((fromHex & 0x00FF00) >> 8)/0xFF
let blue = CGFloat(fromHex & 0x0000FF)/0xFF
let alpha = CGFloat(1.0)
return UIColor(red: red, green: green, blue: blue, alpha: alpha)
}
}
Uso:
view.backgroundColor = UIColor.customGreen
Esto necesita estar en la parte superior de la lista de respuestas. – amallard
- 1. ¿Puedo hacer mis propios guardias en Erlang?
- 2. ¿Cómo hacer que mis aplicaciones sean "personalizables"?
- 3. ¿Cómo puedo hacer que los elementos HTML no sean resaltables?
- 4. ¿Cómo agregar componentes JSF existentes a mis propios componentes personalizados?
- 5. Shoulda + FactoryGirl: ¿Puedo hacer que mis pruebas sean más rápidas?
- 6. ¿Cómo puedo hacer que los enlaces sean blancos?
- 7. ¿Cómo hacer que mis emacs personalizados carguen más rápido?
- 8. No puedo importar mis propios módulos en Python
- 9. Creando mis propios iteradores
- 10. No se encuentran los archivos preestablecidos
- 11. ¿Cómo puedo hacer que las devoluciones de eventos en mis formularios de win sean seguras?
- 12. ¿Cómo puedo extender datetime.datetime de Python con mis propios métodos?
- 13. ¿Cómo puedo crear mis propios métodos que toman un bloque como argumento y al que puedo llamar más tarde?
- 14. ¿Cómo puedo hacer que mis registros de base de datos mysql sean visibles para los motores de búsqueda?
- 15. ¿Puedo decorar funciones avanzadas de PowerShell con mis propios atributos personalizados?
- 16. DataGridView: ¿Cómo hacer que algunas celdas sean no seleccionables?
- 17. ¿Cómo puedo hacer que las texturas sean transparentes en OpenGL?
- 18. ¿Cómo hacer que los miembros de struct sean privados?
- 19. ¿Puedo agregar mis propios fragmentos de código a xcode 4?
- 20. ¿Cómo hacer que los submódulos de Git sean más fáciles para los no programadores?
- 21. ¿Cómo hacer que los parámetros sean obligatorios en PowerShell?
- 22. ¿Cómo hacer que los controladores Grails sean más DRY?
- 23. Validación Jquery: Cómo hacer que los campos sean rojos
- 24. Cómo utilizar Google Maps para buscar mis propios datos de localización (la misma funcionalidad que Lugares API de búsqueda, pero para mis propios "lugares")
- 25. ¿Cómo hacer que las propiedades sean privadas?
- 26. ¿Puedo usar svchost.exe para alojar mis propios servicios?
- 27. Cómo puedo hacer que Internet Explorer no cambia los colores en mis imágenes PNG
- 28. ¿Cómo puedo hacer que los saltos de la etiqueta vim sean tan inteligentes como OmniCppComplete?
- 29. Cómo hacer que fitBounds tenga en cuenta los controles personalizados
- 30. Python: ¿definir mis propios operadores?
Estoy usando una solución similar pero tengo que llamar algo así como: [[UIColor alloc] MyColor] para que funcione. ¿Hay alguna manera de no tener que asignarlo? – adjwilli
@adjwilli Asegúrese de estar utilizando un '+' delante de la declaración del método, no un '-'. Esto lo convertirá en un método de clase frente a un método de instancia. –