added more view extensions
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
af82966bad
commit
3625db96bf
@ -176,10 +176,66 @@ extension UIView {
|
||||
|
||||
extension CALayer {
|
||||
func remove(layerName: String) {
|
||||
sublayers?.forEach({ layer in
|
||||
guard let sublayers = sublayers else {
|
||||
return
|
||||
}
|
||||
|
||||
sublayers.forEach({ layer in
|
||||
if layer.name?.hasPrefix(layerName) ?? false {
|
||||
layer.removeFromSuperlayer()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extension UIView {
|
||||
|
||||
public func addBorder(side: UIRectEdge, width: CGFloat, color: UIColor) {
|
||||
let layerName = borderLayerName(for: side)
|
||||
layer.remove(layerName: layerName)
|
||||
|
||||
let borderLayer = CALayer()
|
||||
borderLayer.backgroundColor = color.cgColor
|
||||
borderLayer.name = layerName
|
||||
|
||||
switch side {
|
||||
case .left:
|
||||
borderLayer.frame = CGRect(x: 0, y: 0, width: width, height: frame.height)
|
||||
case .right:
|
||||
borderLayer.frame = CGRect(x: frame.width - width, y: 0, width: width, height: frame.height)
|
||||
case .top:
|
||||
borderLayer.frame = CGRect(x: 0, y: 0, width: frame.width, height: width)
|
||||
case .bottom:
|
||||
borderLayer.frame = CGRect(x: 0, y: frame.height - width, width: frame.width, height: width)
|
||||
default:
|
||||
break
|
||||
}
|
||||
|
||||
layer.addSublayer(borderLayer)
|
||||
}
|
||||
|
||||
public func removeBorders() {
|
||||
layer.borderWidth = 0
|
||||
layer.borderColor = nil
|
||||
layer.remove(layerName: borderLayerName(for: .top))
|
||||
layer.remove(layerName: borderLayerName(for: .left))
|
||||
layer.remove(layerName: borderLayerName(for: .right))
|
||||
layer.remove(layerName: borderLayerName(for: .bottom))
|
||||
}
|
||||
|
||||
private func borderLayerName(for side: UIRectEdge) -> String {
|
||||
switch side {
|
||||
case .left:
|
||||
return "leftBorderLayer"
|
||||
case .right:
|
||||
return "rightBorderLayer"
|
||||
case .top:
|
||||
return "topBorderLayer"
|
||||
case .bottom:
|
||||
return "bottomBorderLayer"
|
||||
default:
|
||||
return ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user