ios colors uikit uitextfield border

ios - Color del borde UITextField



colors uikit (7)

Importar el framework QuartzCore en tu clase:

#import <QuartzCore/QuartzCore.h>

y para cambiar el color del borde use el siguiente fragmento de código (lo estoy configurando para redColor),

textField.layer.cornerRadius=8.0f; textField.layer.masksToBounds=YES; textField.layer.borderColor=[[UIColor redColor]CGColor]; textField.layer.borderWidth= 1.0f;

Para volver al diseño original, simplemente configure el color del borde para borrar el color,

serverField.layer.borderColor=[[UIColor clearColor]CGColor];

en código rápido

textField.layer.borderWidth = 1 textField.layer.borderColor = UIColor.whiteColor().CGColor

Realmente deseo establecer mi propio color en el borde UITextField. Pero hasta ahora pude descubrir cómo cambiar el estilo de línea de borde solamente.

He usado la propiedad de fondo para establecer el color de fondo de tal manera:

self.textField.backgroundColor = textFieldColor;

Pero también tengo que cambiar el color del borde UITextField. Y mi pregunta fue sobre cómo cambiar el color del borde.


Importar la siguiente clase:

#import <QuartzCore/QuartzCore.h>

// Código para configurar el color gris para el borde del campo de texto

[[textField layer] setBorderColor:[[UIColor colorWithRed:171.0/255.0 green:171.0/255.0 blue:171.0/255.0 alpha:1.0] CGColor]];

Reemplace 171.0 con el número de color respectivo según sea necesario.


Para simplificar estas acciones a partir de la respuesta aceptada, también puede crear Categoría para UIView (ya que esto funciona para todas las subclases de UIView, no solo para campos de texto:

UIView + Additions.h:

#import <Foundation/Foundation.h> @interface UIView (Additions) - (void)setBorderForColor:(UIColor *)color width:(float)width radius:(float)radius; @end

UIView + Additions.m:

#import "UIView+Additions.h" @implementation UIView (Additions) - (void)setBorderForColor:(UIColor *)color width:(float)width radius:(float)radius { self.layer.cornerRadius = radius; self.layer.masksToBounds = YES; self.layer.borderColor = [color CGColor]; self.layer.borderWidth = width; } @end

Uso:

#import "UIView+Additions.h" //... [textField setBorderForColor:[UIColor redColor] width:1.0f radius:8.0f];


Prueba esto:

UITextField *theTextFiels=[[UITextField alloc]initWithFrame:CGRectMake(40, 40, 150, 30)]; theTextFiels.borderStyle=UITextBorderStyleNone; theTextFiels.layer.cornerRadius=8.0f; theTextFiels.layer.masksToBounds=YES; theTextFiels.backgroundColor=[UIColor redColor]; theTextFiels.layer.borderColor=[[UIColor blackColor]CGColor]; theTextFiels.layer.borderWidth= 1.0f; [self.view addSubview:theTextFiels]; [theTextFiels release];

e importar QuartzCore:

#import <QuartzCore/QuartzCore.h>


Si usa un campo de texto con esquinas redondeadas, use este código:

self.TextField.layer.cornerRadius=8.0f; self.TextField.layer.masksToBounds=YES; self.TextField.layer.borderColor=[[UIColor redColor]CGColor]; self.TextField.layer.borderWidth= 1.0f;

Para eliminar el borde:

self.TextField.layer.masksToBounds=NO; self.TextField.layer.borderColor=[[UIColor clearColor]CGColor];


esta pregunta aparece bastante alta en una búsqueda de Google y funcionó en su mayor parte. Encontré que la respuesta de Salman Zaidi era parcialmente correcta para iOS 7.

Necesita hacer una modificación al código de "revertir". Descubrí que lo siguiente para revertir funcionaba perfectamente:

textField.layer.cornerRadius = 0.0f; textField.layer.masksToBounds = YES; textField.layer.borderColor = [[UIColor blackColor] CGColor]; textField.layer.borderWidth = 0.0f;

Entiendo que esto probablemente se deba a cambios en iOS 7.


borderColor en cualquier vista (o subclase UIView) también se puede configurar usando el guión gráfico con un poco de codificación, y este enfoque podría ser muy útil si está configurando el color del borde en múltiples objetos de interfaz de usuario.

A continuación se detallan los pasos para lograrlo,

  1. Crea una categoría en la clase CALayer. Declare una propiedad de tipo UIColor con un nombre adecuado, lo nombraré borderUIColor .
  2. Escriba el colocador y getter para esta propiedad.
  3. En el método ''Setter'', simplemente establezca la propiedad "borderColor" de la capa en el nuevo valor CGColor de colores.
  4. En el método ''Getter'', devuelve UIColor con borderColor de la capa.

PD: Recuerde, las Categorías no pueden tener propiedades almacenadas. ''borderUIColor'' se usa como una propiedad calculada, solo como una referencia para lograr aquello en lo que nos estamos enfocando.

Por favor, eche un vistazo a la muestra del código a continuación;

C objetivo:

Archivo de interfaz:

#import <QuartzCore/QuartzCore.h> #import <UIKit/UIKit.h> @interface CALayer (BorderProperties) // This assigns a CGColor to borderColor. @property (nonatomic, assign) UIColor* borderUIColor; @end

Archivo de Implementación:

#import "CALayer+BorderProperties.h" @implementation CALayer (BorderProperties) - (void)setBorderUIColor:(UIColor *)color { self.borderColor = color.CGColor; } - (UIColor *)borderUIColor { return [UIColor colorWithCGColor:self.borderColor]; } @end

Swift 2.0:

extension CALayer { var borderUIColor: UIColor { set { self.borderColor = newValue.CGColor } get { return UIColor(CGColor: self.borderColor!) } } }

Y finalmente vaya a su guión gráfico / XIB, siga los pasos restantes;

  1. Haga clic en el objeto Ver para el que desea establecer el Color del borde.
  2. Haga clic en "Inspector de identidad" (tercero desde la izquierda) en el panel "Utilidad" (lado derecho de la pantalla).
  3. En "Atributos de tiempo de ejecución definidos por el usuario", haga clic en el botón "+" para agregar una ruta clave.
  4. Establezca el tipo de la ruta clave en "Color".
  5. Ingrese el valor para la ruta clave como "layer.borderUIColor". [Recuerde que este debe ser el nombre de la variable que declaró en la categoría, no borderColor aquí es borderUIColor ].
  6. Finalmente elige el color que quieras.

Debe establecer el valor de la propiedad layer.borderWidth en al menos 1 para ver el color del borde.

Construir y ejecutar Feliz Codificación. :)