Estoy intentando establecer el color del borde personalizado de UIView mediante programación en Swift.
Estoy intentando establecer el color del borde personalizado de UIView mediante programación en Swift.
Respuestas:
Si usa Swift 2.0+
self.yourView.layer.borderWidth = 1
self.yourView.layer.borderColor = UIColor(red:222/255, green:225/255, blue:227/255, alpha: 1).cgColor
En Swift 4 puede establecer el color y el ancho del borde en UIControls usando el siguiente código.
let yourColor : UIColor = UIColor( red: 0.7, green: 0.3, blue:0.1, alpha: 1.0 )
yourControl.layer.masksToBounds = true
yourControl.layer.borderColor = yourColor.CGColor
yourControl.layer.borderWidth = 1.0
<Swift 4 , puede establecer el ancho del borde de UIView y el color del borde usando el siguiente código.
yourView.layer.borderWidth = 1
yourView.layer.borderColor = UIColor.red.cgColor
Utilice @IBDesignable y @IBInspectable para hacer lo mismo.
Son reutilizables, fácilmente modificables desde Interface Builder y los cambios se reflejan inmediatamente en el Storyboard.
Adapte los objetos del guión gráfico a la clase en particular.
Fragmento de código:
@IBDesignable
class CustomView: UIView{
@IBInspectable var borderWidth: CGFloat = 0.0{
didSet{
self.layer.borderWidth = borderWidth
}
}
@IBInspectable var borderColor: UIColor = UIColor.clear {
didSet {
self.layer.borderColor = borderColor.cgColor
}
}
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
}
}
Permite una fácil modificación desde Interface Builder:
@IBDesignable
y @IBInspectable
todo funciona bien, por lo que debería haber una forma para que las aduanas usen Color Assets con el modo oscuro / claro también ~ ¿alguien sabe cómo se puede lograr?
Puede escribir una extensión para usarla con todas las UIViews, por ejemplo. UIButton, UILabel, UIImageView, etc. Puede personalizar mi siguiente método según sus necesidades, pero creo que funcionará bien para usted.
extension UIView{
func setBorder(radius:CGFloat, color:UIColor = UIColor.clearColor()) -> UIView{
var roundView:UIView = self
roundView.layer.cornerRadius = CGFloat(radius)
roundView.layer.borderWidth = 1
roundView.layer.borderColor = color.CGColor
roundView.clipsToBounds = true
return roundView
}
}
Uso:
btnLogin.setBorder(7, color: UIColor.lightGrayColor())
imgViewUserPick.setBorder(10)
rápido 3
func borderColor(){
self.viewMenuItems.layer.cornerRadius = 13
self.viewMenuItems.layer.borderWidth = 1
self.viewMenuItems.layer.borderColor = UIColor.white.cgColor
}
Swift 5.2 , extensión UIView +
extension UIView {
public func addViewBorder(borderColor:CGColor,borderWith:CGFloat,borderCornerRadius:CGFloat){
self.layer.borderWidth = borderWith
self.layer.borderColor = borderColor
self.layer.cornerRadius = borderCornerRadius
}
}
Usaste esta extensión;
yourView.addViewBorder(borderColor: #colorLiteral(red: 0.6, green: 0.6, blue: 0.6, alpha: 1), borderWith: 1.0, borderCornerRadius: 20)
Escriba el código en su viewDidLoad()
self.view.layer.borderColor = anyColor().CGColor
Y puedes configurar Color
conRGB
func anyColor() -> UIColor {
return UIColor(red: 0.0/255.0, green: 0.0/255.0, blue: 0.0/255.0, alpha: 1.0)
}
Aprenda algo sobre CALayer
enUIKit
rápido 3.0
self.uiTextView.layer.borderWidth = 0.5
self.txtItemShortDes.layer.borderColor = UIColor(red:205.0/255.0, green:205.0/255.0, blue:205.0/255.0, alpha: 1.0).cgColor
Podemos crear un método para ello. Simplemente utilícelo.
public func createBorderForView(color: UIColor, radius: CGFloat, width: CGFloat = 0.7) {
self.layer.borderWidth = width
self.layer.cornerRadius = radius
self.layer.shouldRasterize = false
self.layer.rasterizationScale = 2
self.clipsToBounds = true
self.layer.masksToBounds = true
let cgColor: CGColor = color.cgColor
self.layer.borderColor = cgColor
}
Swift 3.0
groundTrump.layer.borderColor = UIColor.red.cgColor