¿Es posible controlar las propiedades del borde UIView (color, grosor, etc.) directamente desde el generador de interfaces o solo puedo hacerlo mediante programación?
ios
uiview
interface-builder
border
matteo.cajani
fuente
fuente
Respuestas:
En realidad, puede establecer algunas propiedades de la capa de una vista a través del generador de interfaces. Sé que puedo establecer borderWidth y cornerRadius de una capa a través de xcode. borderColor no funciona, probablemente porque la capa quiere un CGColor en lugar de un UIColor.
Puede que tenga que usar cadenas en lugar de números, ¡pero funciona!
fuente
La respuesta de Rich86Man es correcta, pero puede usar categorías para propiedades proxy como layer.borderColor. (Del convencional C cacao C)
CALayer + XibConfiguration.h:
CALayer + XibConfiguration.m:
El resultado será evidente durante el tiempo de ejecución, no en Xcode.
Editar : también debe establecer
layer.borderWidth
al menos 1 para ver el borde con el color elegido.En Swift 2.0:
En Swift 3.0:
fuente
Respuesta similar a la de iHulk, pero en Swift
Agregue un archivo llamado UIView.swift en su proyecto (o simplemente péguelo en cualquier archivo):
Entonces esto estará disponible en Interface Builder para cada botón, imageView, etiqueta, etc. en el Panel de utilidades> Inspector de atributos:
Nota: el borde solo aparecerá en tiempo de ejecución.
fuente
@IBDesignable
desde el comienzo de la extensión.Puede crear una categoría de UIView y agregar esto en el archivo .h de categoría
Ahora agregue esto en el archivo .m
y esto también en. archivo m
ahora verá esto en su guión gráfico para todas las subclases de UIView (UILabel, UITextField, UIImageView, etc.)
Eso es ... No es necesario importar la categoría en ningún lugar, solo agregue los archivos de la categoría en el proyecto y vea estas propiedades en el guión gráfico.
fuente
Para Swift 3 y 4 , si está dispuesto a usar
IBInspectable
s, hay esto:fuente
Si bien esto podría establecer las propiedades, en realidad no se refleja en IB. Entonces, si esencialmente está escribiendo código en IB, también podría hacerlo en su código fuente
fuente
Si desea ahorrar tiempo, simplemente use dos
UIViews
uno encima del otro, el de la parte posterior es el color del borde y el del frente es más pequeño, lo que da el efecto de borde. Tampoco creo que esta sea una solución elegante, pero si a Apple le importa un poco más, entonces no debería tener que hacer esto.fuente
Es absolutamente posible solo cuando configuras
layer.masksToBounds = true
y descansas cosas.fuente
Por lo tanto, siempre es la respuesta perfecta es usar el código, solo cree la instancia IBOutlet de UIView y agregue las propiedades
Respuesta corta :
Respuesta larga :
Esquinas redondeadas de UIView / UIButton, etc.
Espesor de la frontera
Color del borde
fuente
Agregue estas 2 líneas de código simples:
Funcionará bien
fuente