LJIdleFish给Tabbar加入动画功能第二天

134 阅读1分钟

LJIdleFish给Tabbar加入动画功能第二天

Xnip2022-02-02_09-07-51.jpg

对背景图片自定义Shap 形状

**struct** CustomTabbarBackShaps: Shape {

    **func** path(in rect: CGRect) -> Path {

        **let** width = rect.size.width

        **let** height = rect.size.height

        **let** midWidth = width * 0.5

        **return** Path { path **in**

            

            path.move(to: CGPoint(x: 0, y: 20))

            

            path.addLine(to: CGPoint(x: midWidth - 55, y: 20))

            path.addCurve(to: CGPoint(x: midWidth, y: 0), control1: CGPoint(x: midWidth - 35, y: 20), control2: CGPoint(x: midWidth - 25, y: 0))

            

            path.addCurve(to: CGPoint(x: midWidth + 55, y: 20), control1: CGPoint(x: midWidth + 25, y: 0), control2: CGPoint(x: midWidth + 35, y: 20))

            

            path.addLine(to: CGPoint(x: width, y: 20))

            path.addLine(to: CGPoint(x: width, y: height))

            path.addLine(to: CGPoint(x: 0, y: height))

        }

     }

}

if currentTabbar == item {

                                AnimatedImage(name: "tabbar_animation.gif")

                                    .customLoopCount(1)

                                    .resizable()

                                    .aspectRatio(contentMode: .fit)

                                    .frame(width: 35, height: 35)

                            }**else**{

                                Image(item.norIconName)

                            }
                            

换掉

.background(Color.white.clipShape(CustomTabbarBackShaps()))