如何构建自定义 UITabBar?

How can I build a custom UITabBar?

我想构建一个具有白色背景色、圆角、较小宽度和自定义指示器的自定义 UITabBar(见图)。我可以继承 UITabBar/UITabBarController 还是必须手动创建新视图?我该怎么做?

非常感谢!

好的...首先你可以打开故事板并设置一个漂亮的粉红色背景颜色,然后你可以添加一个 UIView。

您可以为超级视图设置比例高度和宽度,例如宽度为 0.9,高度为 0.12,然后是中心 X 约束和与超级视图底部对齐。

在视图中添加一个水平 stackView,其中三个按钮嵌入了填​​充 "Distribution"。

现在在所有状态下为按钮设置背景图像,默认状态的图像为黑白版本,突出显示和 selected 状态为彩色版本。

现在转到代码并添加类似这样的内容来创建圆角的方法:

extension UIView{
func roundedView(){
    let maskPath1 = UIBezierPath(roundedRect: bounds,
                                 byRoundingCorners: [.topLeft , .topRight],
                                 cornerRadii: CGSize(width: 15, height: 15))
    let maskLayer1 = CAShapeLayer()
    maskLayer1.frame = bounds
    maskLayer1.path = maskPath1.cgPath
    layer.mask = maskLayer1
  }
}

现在在您的 viewWillAppear 中添加一个 tabBar?.roundedView()

如果你像魔术一样连接 tabBar UIView 的 IBOutlet,你可以看到你的 "tabBar" 带有圆角。

现在将 IBOutlet 连接到按钮和 select 并在您点击它时 deselect。

如果你想澄清,可以告诉我。再见..