es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Quiero usar solamente la línea superior de borde y las esquinas superiores derecha e izquierda. Lo hice, pero los colores de las esquinas no aparecen ¿Alguien puede ayudarme?

Extensión UIView {
func roundCorners(view: UIView, corners: UIRectCorner, radius: CGFloat) {
let path = UIBezierPath(roundedRect: view.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
let mask = CAShapeLayer()
mask.path = path.cgPath
view.layer.mask = mask
path.close()
let color = UIColor.white
color.setStroke()
path.stroke()
}
}

enum ViewSide: String {
case Left = “Left”, Right = “Right”, Top = “Top”, Bottom = “Bottom”
}
func addBorder(toSide side: ViewSide, withColor color: CGColor, andThickness thickness: CGFloat) {

    let border = CALayer()
    border.borderColor = color
    border.name = side.rawValue
    switch side {
    case .Left: border.frame = CGRect(x: 0, y: 0, width: thickness, height: frame.height)
    case .Right: border.frame = CGRect(x: frame.width - thickness, y: 0, width: thickness, height: frame.height)
    case .Top: border.frame = CGRect(x: 0, y: 0, width: frame.width, height: thickness)
    case .Bottom: border.frame = CGRect(x: 0, y: frame.height - thickness, width: frame.width, height: thickness)
    }

    border.borderWidth = thickness

    layer.addSublayer(border)
}

func removeBorder(toSide side: ViewSide) {
    guard let sublayers = self.layer.sublayers else { return }
    var layerForRemove: CALayer?
    for layer in sublayers {
        if layer.name == side.rawValue {
            layerForRemove = layer
        }
    }
    if let layer = layerForRemove {
        layer.removeFromSuperlayer()
    }
}

}

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Pregunta:

    Explique el propósito de la extensión UIView y los métodos roundCorners, addBorder y removeBorder.

    Respuesta:

    La extensión UIView nos permite agregar funcionalidad a la clase UIView que no está presente originalmente.

    El método roundCorners se utiliza para redondear las esquinas de una UIView. Toma una UIView, una UIRectCorner y un CGFloat. El parámetro UIRectCorner especifica qué esquinas redondear, y el parámetro CGFloat especifica el radio de las esquinas redondeadas.

    El método addBorder se utiliza para agregar un borde a un lado específico de una UIView. Toma un parámetro ViewSide para determinar qué lado agregar el borde, un parámetro CGColor para determinar el color del borde y un parámetro CGFloat para determinar el grosor del borde.

    El método removeBorder se utiliza para eliminar un borde de un lado específico de una UIView. Toma un parámetro ViewSide para determinar de qué lado eliminar el borde.

    En general, la extensión y los métodos proporcionan formas sencillas de manipular la apariencia de una UIView.

Comments are closed.