LJIdleFish给Tabbar加入动画功能第二天
对背景图片自定义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()))