swiftUI开发实现页面的跳转

适配6sp ios13.3
使用
TabView点击实现跳转,
请自行删除掉注释部分和不需要的部分。

//
//  ContentView.swift
//  GraduationTestApp01
//
//  Created by Humphrey Norton on 2022/4/26.
//  Copyright © 2022 Humphrey Norton. All rights reserved.
//

import SwiftUI
import RealityKit
import UIKit
import Combine
import Foundation


struct ContentView : View {
    
    
    
    
    @State private var selectedIndex = 0
    
    @State private var Title = "进行中"
    
    
    
    var body: some View {
        NavigationView{
            
            
            VStack(alignment: .leading, spacing: 0){
                
                
                
                
                
                
                userInformation
                
                
                classifyTopview
                //                Text("hello world! ")
                pageView
                
                Spacer()
            }//VStack
                .navigationBarTitle("界面01",displayMode: .inline)
            //            .navigationBarItems(leading: searchBar, trailing: postButton)
        }//NavigationView
            .onAppear{
                UINavigationBar.appearance().barTintColor = .white
        }
    }
    
    
    
    
    
}


//定义全局常量 设置Titles
private let Titles = ["全\t部","进行中","已完成"]


private var userMoney = 6.56


//ARViewContainer结构体加载三维模型
struct ARViewContainer: UIViewRepresentable {
    
    func makeUIView(context: Context) -> ARView {
        
        let arView = ARView(frame: .zero)
        
        // Load the "Box" scene from the "Experience" Reality File
        let boxAnchor = try! Experience.loadBox()
        
        //        parkinglot_s模型加载
        //    为什么未自动创建parkinglot_s的类?
        //        let boxAnchor = try! parkinglot_s.loadBox()
        
        
        // Add the box anchor to the scene
        arView.scene.anchors.append(boxAnchor)
        
        return arView
        
    }
    
    func updateUIView(_ uiView: ARView, context: Context) {}
}



//test3
//userinformation
extension ContentView{
    
    
    private  var userInformation : some View{
        
        //返回VStack,整合视图,以垂直方向排列显示;HStack水平方向排列显示;ZStack重叠排列显示;布局的显示
        
        
        
        HStack(alignment: .center){
            
            VStack(alignment: .center){
                Image(systemName: "person.crop.circle")
                    .font(Font.title.weight(.medium))
                    .accentColor(.white)
                    .padding(5)
                Text("余额:6.54元").padding(5)
                //添加边框线
                
                
            }//VStack
                .offset(x:30,y: 8)
            
            
            VStack(alignment: .leading){
                
                Text("昵称:8103018310").padding(5)
                
                
                Text("账号:678@c.com").padding(5)
                
                
            }//VStack
                .offset(x:40,y: 10)
            
            
            
        }//HStack
        
        
        
        
        
        
        
    }
    
}


//orderFormInformation
extension ContentView{
    
    private  var orderFormInformation : some View{
        
        HStack{
            
            Text("订单信息0")
        }
        
        
        
    }
    
}






//滑动改变订单界面效果 订单状态选项
extension ContentView{
    private  var classifyTopview : some View{
        
        VStack(alignment: .leading, spacing: 0){
            
            HStack{
                
                
                VStack(alignment: .leading, spacing: 0){
                    
                    
                    
                    HStack(spacing:0){
                        
                        //设置状态选项栏中显示的内容
                        ForEach(0..<Titles.count){
                            
                            index in
                            Text(Titles[index])
                                //设置显示字体
                                .fontWeight(self.selectedIndex == index ? .bold : nil)
                                .font(.subheadline)
                                //设置字体显示的颜色
                                .foregroundColor(self.selectedIndex == index ? .green : nil)
                                .frame(width:136,height: 36)
                                
                                //添加边框线
                                .overlay(
                                    RoundedRectangle(cornerRadius: 28.0/2, style: .continuous)
                                        .stroke(Color(.gray), lineWidth: 0.5)
                            )
                                
                                
                                .onTapGesture {
                                    self.selectedIndex = index
                                    print("当前在状态栏:\(self.selectedIndex)")}
                            
                        }
                        
                        
                        
                        
                    }
                    
                    //下划线的长宽高
                    HStack{
                        Capsule().fill(Color.blue)
                            .frame(width:30,height: 2)
                        
                    }.frame(width:136)
                        .offset(x:CGFloat(selectedIndex * 136))
                        .animation(.default)
                    
                }.padding(.leading,10)
                
                
                
                
                
            }.background(Color.white.opacity(0.5))
                .offset(x:-5)
            Divider()
            
            
            
            
        }.frame(height:64)
        
    }
    
    
    
}


//订单详情界面的设置 根据所选择的项目的不同 怼不同内容的显示
extension ContentView{
    private var pageView : some View{
        VStack{
        

            
            
            TabView(selection: $selectedIndex) {
                
                
                
                //在三个选项框内部的显示内容,后期可以改成循环数据库中的数据 显示出来 对用户的账号id 邮箱进行显示
                
                Text("第一栏页面").foregroundColor(.blue).tag(0)
                Text("第二栏页面").foregroundColor(.green).tag(1)
//                Text("第三栏页面").foregroundColor(.red).tag(2)
                Text("当前的$selectedIndex的值为 \(selectedIndex)").tag(2)


            }//TabView
                //将边界的TabView移出屏幕外
                .offset(y:60)
        










#if DEBUG
struct ContentView_Previews : PreviewProvider {
    static var previews: some View {
        ContentView().previewDevice("iPhone 6s Plus 13.3")
    }
}
#endif






  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【课程特点】1、231节大容量课程:包含了SwiftUI的大部分知识点,详细讲解SwiftUI的方方面面;2、15个超级精彩的实例:包含美食、理财、健身、教育、电子商务等各行业的App实例;3、创新的教学模式:手把手教您SwiftUI用户界面开发技术,一看就懂,一学就会;4、贴心的操作提示:让您的眼睛始终处于操作的焦点位置,不用再满屏找光标;5、语言简洁精练:瞄准问题的核心所在,减少对思维的干扰,并节省您宝贵的时间;6、视频短小精悍:即方便于您的学习和记忆,也方便日后对功能的检索;7、齐全的学习资料:提供所有课程的源码,在Xcode 11 + iOS 13环境下测试通过; 更好的应用,更少的代码!SwiftUI是苹果主推的下一代用户界面搭建技术,具有声明式语法、实时生成界面预览等特性,可以为苹果手机、苹果平板、苹果电脑、苹果电视、苹果手表五个平台搭建统一的用户界面。SwiftUI是一种创新、简单的iOS开发中的界面布局方案,可以通过Swift语言的强大功能,在所有的Apple平台上快速构建用户界面。 仅使用一组工具和API为任何Apple设备构建用户界面。SwiftUI具有易于阅读和自然编写的声明式Swift语法,可与新的Xcode设计工具无缝协作,使您的代码和设计**同步。自动支持动态类型、暗黑模式、本地化和可访问性,意味着您的**行SwiftUI代码已经是您编写过的非常强大的UI代码了。 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值