Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

339
Vistas
Relleno de borde para una UIView

Creé un borde estándar alrededor de mi UIView así:

 vwGroup.layer.borderColor = UIColor.yellow.cgColor vwGroup.layer.borderWidth = 2.0;

pero me gustaría tener 5px de relleno/margen/espaciado entre UIView y el borde que lo rodea.

En este momento, solo dibuja el borde inmediatamente a su alrededor. Me gustaría empujarlo para que haya espacio libre entre ellos.

¿Alguna sugerencia? Sospecho que las inserciones son el camino a seguir, pero no puedo resolverlo.

¡Gracias!

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Las inserciones no son el camino a seguir. Se usa el recuadro para rellenar el contenido interno de una vista desde sus márgenes. Para lo que necesita, su mejor opción es envolver su vwGroup dentro de otra UIView y establecer el borde en la vista de ajuste. Algo como:

 let wrappingView = UIView(frame: someFrame) wrappingView.backgroundColor = .clear wrappingView.layer.borderColor = UIColor.yellow.cgColor wrappingView.layer.borderWidth = 2.0; wrappingView.addSubview(vwGroup)

Por supuesto, esto es solo para que usted tenga una idea general. Es posible que desee establecer marcos/restricciones adecuados.

over 4 years ago · Santiago Trujillo Denunciar

0

rápido 5.4

llamar así:

 customView.layer.innerBorder()

lo hizo, agregando una subcapa

 extension CALayer { func innerBorder(borderOffset: CGFloat = 24.0, borderColor: UIColor = UIColor.blue, borderWidth: CGFloat = 2) { let innerBorder = CALayer() innerBorder.frame = CGRect(x: borderOffset, y: borderOffset, width: frame.size.width - 2 * borderOffset, height: frame.size.height - 2 * borderOffset) innerBorder.borderColor = borderColor.cgColor innerBorder.borderWidth = borderWidth innerBorder.name = "innerBorder" insertSublayer(innerBorder, at: 0) } }
over 4 years ago · Santiago Trujillo Denunciar

0

Prueba esto, te será útil.

Primero, agregue esta extensión

 extension CALayer { func addGradientBorder(colors:[UIColor],width:CGFloat = 1) { let gradientLayer = CAGradientLayer() gradientLayer.frame = CGRect(origin: CGPoint.zero, size: self.bounds.size) gradientLayer.startPoint = CGPoint(x:0.0, y:0.0) gradientLayer.endPoint = CGPoint(x:1.0,y:1.0) gradientLayer.colors = colors.map({$0.cgColor}) let shapeLayer = CAShapeLayer() shapeLayer.lineWidth = width shapeLayer.path = UIBezierPath(rect: self.bounds).cgPath shapeLayer.fillColor = nil shapeLayer.strokeColor = UIColor.red.cgColor gradientLayer.mask = shapeLayer self.addSublayer(gradientLayer) } }

Luego agregue la UIView con borde

 let vwGroup = UIView(frame: CGRect(x: 50, y: 150, width: 200, height: 200)) vwGroup.backgroundColor = .red //-- This is for padding between boarder and view -- you can set padding color --- vwGroup.layer.addGradientBorder(colors:[UIColor.black,UIColor.black] , width: 40) //-- This is for outer boarder -- you can also change the color of outer boarder -- vwGroup.layer.addGradientBorder(colors:[UIColor.white,UIColor.white] , width: 10) self.view.addSubview(vwGroup)

La salida es:

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda