borderColor en cualquier caso (o subclase UIView) también podría configurarse 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 la interfaz de usuario.
A continuación se presentan los pasos cómo lograrlo,
- crear una categoría de clase CALayer. Declare una propiedad del tipo UIColor con un nombre adecuado, lo llamaré borderUIColor.
- Escriba el colocador y el captador para esta propiedad.
- En el método 'Setter', simplemente establezca la propiedad "borderColor" de la capa en el nuevo valor CGColor de colores.
- En el método 'Getter', devuelva UIColor con borderColor de la capa.
P.S: 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 al siguiente ejemplo de código;
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
Implementación del archivo:
#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;
- Haga clic en el objeto Ver para el que desea establecer el color del borde.
- Haga clic en "Inspector de identidad" (3. ° desde la izquierda) en el panel "Utilidad" (lado derecho de la pantalla).
- En "Atributos de tiempo de ejecución definidos por el usuario", haga clic en el botón "+" para agregar una ruta clave.
- Establezca el tipo de la ruta de la clave en "Color".
- Ingrese el valor de la ruta de la clave como "layer.borderUIColor". [Recuerde que este debe ser el nombre de variable que declaró en la categoría, no borderColor aquí es borderUIColor].
- Finalmente, elija el color que desee.
Tienes que establecer layer.borderWidth valor de la propiedad de al menos 1 para ver el color del borde.
Compilar y ejecutar. Happy Coding. :)
Es import en lugar de QuartCore (se olvidó de la z) –
cldrr
En iOS 7 debe establecer un ancho de borde o el color no surte efecto. – Micah
Como principiante, esto no tiene sentido para mí. Si comienzo una aplicación vacía en blanco, vaya al guión gráfico y agregue un campo TextView. ¿Dónde importo el quartzcore? ¿Dónde agrego la información de borderwidth arriba? ¿Qué es "textField" y cómo sabe de qué campo de texto estoy hablando? –