如何调整宽度tabBarController并使其半径

时间:2019-04-05 17:21:05

标签: swift

导入UIKit

类登录:UIViewController,UITextFieldDelegate {

override func viewDidLoad() {
    super.viewDidLoad()
    self.tabBarController?.tabBar.layer.cornerRadius = 15
}

enter image description here

2 个答案:

答案 0 :(得分:1)

通常,Apple很难立即修改它们为您提供的完整组件。因此,没有边界半径,只需一行代码即可轻松修改。好消息是,有一些简单的解决方案可以得到与您想要的here类似的结果,包括背景图像并修改边框半径。

如果您可以进行自定义和疯狂的操作,可以尝试修改this的要点,以制作一个可以“删除”标签栏中您不感兴趣的部分的叠加层(它们透明),然后您可以修改按钮的尺寸以适合您感兴趣的选项卡栏的部分。这带来了自己的挑战:如何制作形状像拱形桥的UIView有点困难我的经验。

祝你好运!

答案 1 :(得分:1)

这些是您可以使用的扩展,使半径阴影在按钮视图选项卡栏甚至导航栏中都可以,只需将此代码放在您的类末尾,在检查器的右侧,您可以看到可以帮助您的其他控制器:)

extension UIView {

    @IBInspectable
    var cornerRadius: CGFloat {
        get {
            return layer.cornerRadius
        }
        set {
            layer.cornerRadius = newValue
        }
    }

    @IBInspectable
    var borderWidth: CGFloat {
        get {
            return layer.borderWidth
        }
        set {
            layer.borderWidth = newValue
        }
    }

    @IBInspectable
    var borderColor: UIColor? {
        get {
            if let color = layer.borderColor {
                return UIColor(cgColor: color)
            }
            return nil
        }
        set {
            if let color = newValue {
                layer.borderColor = color.cgColor
            } else {
                layer.borderColor = nil
            }
        }
    }

    @IBInspectable
    var shadowRadius: CGFloat {
        get {
            return layer.shadowRadius
        }
        set {
            layer.shadowRadius = newValue
        }
    }

    @IBInspectable
    var shadowOpacity: Float {
        get {
            return layer.shadowOpacity
        }
        set {
            layer.shadowOpacity = newValue
        }
    }

    @IBInspectable
    var shadowOffset: CGSize {
        get {
            return layer.shadowOffset
        }
        set {
            layer.shadowOffset = newValue
        }
    }

    @IBInspectable
    var shadowColor: UIColor? {
        get {
            if let color = layer.shadowColor {
                return UIColor(cgColor: color)
            }
            return nil
        }
        set {
            if let color = newValue {
                layer.shadowColor = color.cgColor
            } else {
                layer.shadowColor = nil
            }
        }
    }
}


@IBDesignable extension UIButton {

    @IBInspectable var borderWidth: CGFloat {
        set {
            layer.borderWidth = newValue
        }
        get {
            return layer.borderWidth
        }
    }

    @IBInspectable var cornerRadius: CGFloat {
        set {
            layer.cornerRadius = newValue
        }
        get {
            return layer.cornerRadius
        }
    }

    @IBInspectable var borderColor: UIColor? {
        set {
            guard let uiColor = newValue else { return }
            layer.borderColor = uiColor.cgColor
        }
        get {
            guard let color = layer.borderColor else { return nil }
            return UIColor(cgColor: color)
        }
    }
}