color del bordeTambién se puede establecer en cualquier vista (o subclase UIView) usando el guión gráfico con un poco de codificación y este enfoque podría ser realmente útil si está configurando el color del borde en varios objetos de la interfaz de usuario.
A continuación se detallan los pasos para lograrlo.
- Crea una categoría en la clase CALayer. Declare una propiedad de tipo UIColor con un nombre adecuado, la nombraré como borderUIColor .
- Escriba el setter y getter 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', 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 lo que nos estamos enfocando.
Por favor, eche un vistazo a la muestra de 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;
- Haga clic en el objeto Ver para el que desea establecer el Color del borde.
- Haga clic en "Inspector de identidad" (tercero 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 ruta de la clave en "Color".
- Ingrese el valor para la ruta clave como "layer.borderUIColor". [Recuerde que este debería ser el nombre de la variable que declaró en la categoría, no borderColor aquí es borderUIColor ].
- Finalmente elige el color que quieras.
Tienes que establecer layer.borderWidth valor de la propiedad de al menos 1 para ver el color del borde.
Construye y corre. Feliz codificación. :)