Swift iOS UITabBar 自定义
Swift iOS UITabBar Customization
我有一个标签栏。我改变了它的颜色,给它一个圆角半径,设置了它的边框宽度和颜色,一切都很好。到目前为止,一切都在故事板中完成。
现在我想给它设置左右边距,因为默认情况下它紧贴屏幕边缘。
这是标签栏的当前外观:
黑色箭头指向贴在屏幕边缘的线条。我想在这条线和边缘之间 space。
您可以在自定义 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)
}
}
为 storyboard/xib
中的 TabBar 设置此 class。它应该给你以下内容,
我有一个标签栏。我改变了它的颜色,给它一个圆角半径,设置了它的边框宽度和颜色,一切都很好。到目前为止,一切都在故事板中完成。
现在我想给它设置左右边距,因为默认情况下它紧贴屏幕边缘。
这是标签栏的当前外观:
黑色箭头指向贴在屏幕边缘的线条。我想在这条线和边缘之间 space。
您可以在自定义 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)
}
}
为 storyboard/xib
中的 TabBar 设置此 class。它应该给你以下内容,