Skip to content

Commit 3d03ada

Browse files
committed
external border
1 parent e21f58d commit 3d03ada

2 files changed

Lines changed: 42 additions & 2 deletions

File tree

Sources/EKTabBarController/EKFloatingBarView.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,7 @@ class EKFloatingBarView: UIView {
4242
super.layoutSubviews()
4343

4444
layer.cornerRadius = cornerRadius
45-
layer.borderColor = borderColor.cgColor
46-
layer.borderWidth = borderWidth
45+
_ = addExternalBorder(borderWidth: borderWidth, borderColor: borderColor)
4746

4847
}
4948

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
//
2+
// UIView+Extension.swift
3+
// EKTabBarController
4+
//
5+
// Created by Emil Karimov on 29.10.2022.
6+
// Copyright © 2022 Emil Karimov. All rights reserved.
7+
//
8+
9+
import UIKit
10+
11+
extension UIView {
12+
13+
struct Constants {
14+
static let ExternalBorderName = "externalBorder"
15+
}
16+
17+
func addExternalBorder(borderWidth: CGFloat = 0, borderColor: UIColor = UIColor.clear) -> CALayer {
18+
let externalBorder = CALayer()
19+
externalBorder.frame = CGRectMake(-borderWidth, -borderWidth, frame.size.width + 2 * borderWidth, frame.size.height + 2 * borderWidth)
20+
externalBorder.borderColor = borderColor.CGColor
21+
externalBorder.borderWidth = borderWidth
22+
externalBorder.name = Constants.ExternalBorderName
23+
24+
layer.insertSublayer(externalBorder, atIndex: 0)
25+
layer.masksToBounds = false
26+
27+
return externalBorder
28+
}
29+
30+
func removeExternalBorders() {
31+
layer.sublayers?.filter() { $0.name == Constants.ExternalBorderName }.forEach() {
32+
$0.removeFromSuperlayer()
33+
}
34+
}
35+
36+
func removeExternalBorder(externalBorder: CALayer) {
37+
guard externalBorder.name == Constants.ExternalBorderName else { return }
38+
externalBorder.removeFromSuperlayer()
39+
}
40+
41+
}

0 commit comments

Comments
 (0)