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()
}
}
}
davy.ai
Pregunta:
Explique el propósito de la
extensión UIView
y los métodosroundCorners
,addBorder
yremoveBorder
.Respuesta:
La
extensión UIView
nos permite agregar funcionalidad a la claseUIView
que no está presente originalmente.El método
roundCorners
se utiliza para redondear las esquinas de unaUIView
. Toma unaUIView
, unaUIRectCorner
y unCGFloat
. El parámetroUIRectCorner
especifica qué esquinas redondear, y el parámetroCGFloat
especifica el radio de las esquinas redondeadas.El método
addBorder
se utiliza para agregar un borde a un lado específico de unaUIView
. Toma un parámetroViewSide
para determinar qué lado agregar el borde, un parámetroCGColor
para determinar el color del borde y un parámetroCGFloat
para determinar el grosor del borde.El método
removeBorder
se utiliza para eliminar un borde de un lado específico de unaUIView
. Toma un parámetroViewSide
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
.