SwiftUI 动画 – 自定义 TabBar 底部导航栏菜单动画

分享一个自定义底部导航栏菜单的SwiftUI动画效果


效果演示

SwiftUI 动画 - 自定义 TabBar 底部导航栏菜单动画
SwiftUI 导航Tabbar动画效果

演示视频

SwiftUI Tabbar导航动画效果示例

代码下载

SwiftUI 动画 - 自定义 TabBar 底部导航栏菜单动画

SwiftUI 自定义导航Tabbar示例下载

资源价格 ¥0.00 销售数量 0 更新时间 2024-12-06
已经登录?刷新

代码示例


import SwiftUI

struct CustomBottomBarView: View {
   @Binding var xAxis: CGFloat
   var body: some View {
       ZStack{
           CustomSahpe(xAxis: xAxis)
               .foregroundStyle(.pink)
               .clipShape(RoundedRectangle(cornerRadius: 18))
               .padding(.vertical)
               .frame(width: 350, height: 100, alignment: .center)
       }
               
                   .animation(.spring, value: xAxis)
 }
}

struct CustomSahpe: Shape {
   var xAxis: CGFloat
   var animatableData: CGFloat {
           get { xAxis }
           set { xAxis = newValue }
       }
   func path(in rect: CGRect) -> Path {
       return Path { path in
           path.move(to: CGPoint(x: 0, y: 0))
           path.addLine(to: CGPoint(x: rect.width, y: 0))
           path.addLine(to: CGPoint(x: rect.width, y: rect.height))
           path.addLine(to: CGPoint(x: 0, y: rect.height))
           
           let center = xAxis + 30
           
           path.move(to: CGPoint(x: center - 35, y: 0))
           
           let to1 = CGPoint(x: center, y: 16)
           let control1 = CGPoint(x: center - 12, y: 0)
           let control2 = CGPoint(x: center - 12, y: 15)
           
           let to2 = CGPoint(x: center + 30, y: 0)
           let control3 = CGPoint(x: center + 12, y: 15)
           let control4 = CGPoint(x: center + 12, y: 0)
           
           path.addCurve(to: to1, control1: control1, control2: control2)
           path.addCurve(to: to2, control1: control3, control2: control4)
       }
   }
}

  本文自 https://www.codeun.com 发布,相应代码均自主编写并严格审阅和测试,完整代码中包含丰富的学习笔记和使用方式、实用技巧。
  · 如若转载,请注明出处:https://www.codeun.com/archives/1477.html ·

(1)
上一篇 2024-11-19 下午4:01
下一篇 2025-01-02 上午1:10

相关推荐

发表回复

登录后才能评论