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 {
|
extension CALayer {
|
||||||
func remove(layerName: String) {
|
func remove(layerName: String) {
|
||||||
sublayers?.forEach({ layer in
|
guard let sublayers = sublayers else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
sublayers.forEach({ layer in
|
||||||
if layer.name?.hasPrefix(layerName) ?? false {
|
if layer.name?.hasPrefix(layerName) ?? false {
|
||||||
layer.removeFromSuperlayer()
|
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