Swift Rounded Tab Bar

[Solved] Swift Rounded Tab Bar | Swift - Code Explorer | yomemimo.com
Question : swift rounded tab bar

Answered by : elated-eel-72sacabqutp3

@IBDesignable class TabBarWithCorners: UITabBar { @IBInspectable var color: UIColor? @IBInspectable var radii: CGFloat = 15.0 private var shapeLayer: CALayer? override func draw(_ rect: CGRect) { addShape() } private func addShape() { let shapeLayer = CAShapeLayer() shapeLayer.path = createPath() shapeLayer.strokeColor = UIColor.gray.withAlphaComponent(0.1).cgColor shapeLayer.fillColor = color?.cgColor ?? UIColor.white.cgColor shapeLayer.lineWidth = 2 shapeLayer.shadowColor = UIColor.black.cgColor shapeLayer.shadowOffset = CGSize(width: 0 , height: -3); shapeLayer.shadowOpacity = 0.2 shapeLayer.shadowPath = UIBezierPath(roundedRect: bounds, cornerRadius: radii).cgPath if let oldShapeLayer = self.shapeLayer { layer.replaceSublayer(oldShapeLayer, with: shapeLayer) } else { layer.insertSublayer(shapeLayer, at: 0) } self.shapeLayer = shapeLayer } private func createPath() -> CGPath { let path = UIBezierPath( roundedRect: bounds, byRoundingCorners: [.topLeft, .topRight], cornerRadii: CGSize(width: radii, height: 0.0)) return path.cgPath } override func layoutSubviews() { super.layoutSubviews() self.isTranslucent = true var tabFrame = self.frame tabFrame.size.height = 65 + (UIApplication.shared.keyWindow?.safeAreaInsets.bottom ?? CGFloat.zero) tabFrame.origin.y = self.frame.origin.y + ( self.frame.height - 65 - (UIApplication.shared.keyWindow?.safeAreaInsets.bottom ?? CGFloat.zero)) self.layer.cornerRadius = 20 self.frame = tabFrame self.items?.forEach({ $0.titlePositionAdjustment = UIOffset(horizontal: 0.0, vertical: -5.0) }) }
}

Source : https://stackoverflow.com/questions/61440924/how-can-i-create-a-rounded-tab-with-swift | Last Update : Tue, 20 Jul 21

Answers related to swift rounded tab bar

Code Explorer Popular Question For Swift