2022.09.25 Programming  spritekit  swiftui  
 2022.09.19 Programming  swiftui  
 2022.09.11 Programming  swiftui  
 2022.09.04 Programming  swiftui  
 2022.08.28 Programming  spritekit  
 2022.08.28 Programming  spritekit  
 2022.08.28 Programming  spritekit  
 2022.07.31 Programming  spritekit  
 2022.07.10 Programming  spritekit  
 2022.07.03 Programming  spritekit  
 2022.06.26 Programming  spritekit  
 2022.06.19 Programming  spritekit  
 2022.06.14 Programming  spritekit  swiftui  
 2022.06.04 Programming  spritekit  
 2022.05.22 Programming  spritekit  
 2022.05.04 Programming  spritekit  
 2022.04.29 Programming  spritekit  
 2022.04.24 Programming  spritekit  

TabScroll




import SwiftUI

struct ContentView: View {
    @State var selectedTag = 1

var body: some View {
  TabView(selection: $selectedTag) {
  HomeTabView().tag(1)
   WeatherTabView().tag(2)
   NewsTabView().tag(3)
    NewsTabView2().tag(4)
     NewsTabView3().tag(5)
 }
    .tabViewStyle(PageTabViewStyle())
    .ignoresSafeArea()
  }
}

struct HomeTabView: View {
   var body: some View {
     VStack {
      Image(systemName: "music.note.house")
        .scaleEffect(x: 3.0, y: 3.0)
       .frame(width: 100, height: 100)
    Text("HOME").font(.system(size: 40))
 }
     .frame(maxWidth: .infinity, maxHeight: .infinity)
     .background(Color(red: 0.5, green: 0.9, blue: 0.9))
    .ignoresSafeArea()
 }
}

struct WeatherTabView: View {
    var body: some View {
      VStack {
         Image(systemName: "cloud.sun")
          .scaleEffect(x: 3.0, y: 3.0)
           .frame(width: 100, height: 100)
          Text("Weather").font(.system(size: 40))
 }
    .frame(maxWidth: .infinity, maxHeight: .infinity)
    .background(Color(red: 1.0, green: 0.9, blue: 1.0))
    .ignoresSafeArea()
   }
}

struct NewsTabView: View {
var body: some View {
     VStack {
        Image(systemName: "newspaper")
        .scaleEffect(x: 3.0, y: 3.0)
         .frame(width: 100, height: 100)
       Text("News").font(.system(size: 40))
 }
    .frame(maxWidth: .infinity, maxHeight: .infinity)
    .background(Color(red: 0.9, green: 0.9, blue: 0.8))
    .ignoresSafeArea()
 }
}

struct NewsTabView2: View {
  @State var isShowSubViw = false
    var body: some View {
       GeometryReader { geometory in
     ZStack {
        VStack {
        Image(systemName: "ant.circle.fill")
         .scaleEffect(x: 3.0, y: 3.0)
         .frame(width: 100, height: 100)
          Text("NewsTabView2")
          .font(.system(size: 40, weight: .black, design: .default))
         .padding(.top, -20)
 }
   if isShowSubViw {
          SubView()
      } else {
         Button(action: {
         withAnimation() {
          self.isShowSubViw.toggle()
      }
}) {
     Text("SubViewへ遷移")
         .padding(.top, 200)
         }
       }
  }
      .frame(width: geometory.size.width,
        height: geometory.size.height)
         .background(Color.green)
          .animation(.easeInOut(duration: 0.42))
      }
       .transition(.move(edge: .leading))
  }
 }

struct SubView: View {
  @State var isShowSubViw = false
    var body: some View {
      GeometryReader { geometory in
       ZStack {
        if isShowSubViw {
            NewsTabView2()
        } else {
            Button(action: {
            withAnimation() {
             self.isShowSubViw.toggle()
         }
     }) {
      Text("NewsTabView2へ戻る")
       }
   .padding(.top, 100)
        VStack {
        Text("SubView")
       .font(.system(size: 40, weight: .black, design: .default))
 }
  }
    .frame(width: geometory.size.width,
       height: geometory.size.height)
    .background(
       LinearGradient(
      gradient: Gradient(colors: [Color.yellow, Color.red]),
       startPoint: .init(x: 0.3, y: 0.3),    // start地点
      endPoint: .init(x: 0.55, y: 0.55)     // end地点 。
 ))
   .animation(.easeInOut(duration: 0.42))
 }
   .transition(.move(edge: .leading))
}
}

struct NewsTabView3: View {
    @State var isShow: Bool = false
    var body: some View {
     VStack {
       Image(systemName: "ladybug.fill")
         .scaleEffect(x: 3.0, y: 3.0)
         .frame(width: 100, height: 100)
 Text("First View").font(.system(size: 30))
     .padding(.bottom, 30)
      Button(action: {
     withAnimation {
       self.isShow.toggle()
 }
  }) {
   Text("Second View pageへ").font(.system(size: 20))
 }
   .fullScreenCover(isPresented: $isShow){
    SomeView(isPresented: $isShow)  // SomeViewビューを表示する
   }
 }
 .frame(maxWidth: .infinity, maxHeight: .infinity)
 .background(Color.yellow)
  .ignoresSafeArea()
 }
}

struct SomeView: View {
    // ContentViewビューの変数isShowとバインディングする
    @Binding var isPresented: Bool
 var body: some View {
    NavigationView {
    VStack {
         Image(systemName: "ladybug").scaleEffect(2.0)
        Text("Second View").font(.title2).padding()
   }
    .frame(maxWidth: .infinity, maxHeight: .infinity)
.background(
       LinearGradient(
         gradient: Gradient(colors: [Color.yellow, Color.green]),
          startPoint: .init(x: 0.3, y: 0.3),    // start地点
           endPoint: .init(x: 0.55, y: 0.55)     // end地点
      ))
.toolbar {
   ToolbarItem(placement: .navigationBarLeading) {
     Button {
       isPresented = false
  } label: {
     HStack {
         Image(systemName:"lessthan")
          .foregroundColor(.green)
          Text("First Viewへ戻る")
          .foregroundColor(Color.green)
      }
   }
  }
  }
  }
 }
}
struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}