Swift iOS UITabBar 自定义

Haf*_*wan 5 storyboard uitabbar ios swift

我有一个标签栏。我改变了它的颜色,给它一个圆角半径,设置它的边框宽度和颜色,一切都很好。到目前为止,一切都在故事板中完成。

现在我想给它左右边距,因为默认情况下它粘在屏幕的边缘。

这是标签栏的当前外观:

在此处输入图片说明

黑色箭头指向粘在屏幕边缘的线条。我想要这条线和边缘之间的空间。

Kam*_*ran 4

您可以在自定义中创建此占位符视图,UITabBar如下所示,

class CustomTabBar: UITabBar {

    let roundedView = UIView(frame: .zero)

    override func awakeFromNib() {
        super.awakeFromNib()

        roundedView.layer.masksToBounds = true
        roundedView.layer.cornerRadius = 12.0
        roundedView.layer.borderWidth = 2.0
        roundedView.isUserInteractionEnabled = false
        roundedView.layer.borderColor = UIColor.black.cgColor
        self.addSubview(roundedView)
    }

    override func layoutSubviews() {
        super.layoutSubviews()

        let margin: CGFloat = 12.0
        let position = CGPoint(x: margin, y: 0)
        let size = CGSize(width: self.frame.width - margin * 2, height: self.frame.height)
        roundedView.frame = CGRect(origin: position, size: size)
    }
}
Run Code Online (Sandbox Code Playgroud)

为TabBar设置这个类storyboard/xib。它应该给你以下内容,

在此输入图像描述