Как сгладить переход в условном виде? - PullRequest
1 голос
/ 19 июня 2020

Привет, я делаю приложение для iPad и iPhone, поэтому у меня есть условие для определения размера экрана .regular o .compact, а затем я показываю представление навигации iPad или представление табуляции в представлении iPhone или .compact. import SwiftUI

struct NavigationViewForiPhone : View{
    var body: some View{
        TabView{
            Text("Hi im on iphone or landscape on iPhone no plus")
                .tabItem {
                    Image(systemName: "house.fill")
                    Text("Inicio")
            }

            Text("Hi im on iphone or landscape on iphone plus")
                .tabItem {
                    Image(systemName: "house.fill")
                    Text("Second")
            }
        }
          .background(Color.blue)
         .navigationBarTitle("iPhone View")
    }
}

struct NavigationViewForiPad : View{
    var body: some View{
        NavigationView{
            List{
                NavigationLink(destination: Text("Text hi")){
                    HStack{
                        Text("hi im a menu")
                    }
                }
                NavigationLink(destination: Text("Text hi")){
                    HStack{
                        Text("hi im a menu")
                    }
                }
                NavigationLink(destination: Text("Text hi")){
                    HStack{
                        Text("hi im a menu")
                    }
                }
                NavigationLink(destination: Text("Text hi")){
                    HStack{
                        Text("hi im a menu")
                    }
                }

                .navigationBarTitle("iPad View")
            }
            VStack{
                Text("Hi im on ipad")
                Text("Hi im on iPad or iPhone plus")
                Text("Hi im on ipad")
            }
            .navigationViewStyle(DoubleColumnNavigationViewStyle())
        }
        .background(Color.red)

    }
}

struct ContentView: View {

    // MARK: -  Detectar el tamaño de la pantalla
    @Environment(\.horizontalSizeClass) var sizeClass


    var body: some View{
        Group{

                // MARK: -  Mostrar navegacion con pestañas en iPhone
                if self.sizeClass == .compact
                {
                    withAnimation(.easeInOut(duration: 1) ){
                        return NavigationViewForiPhone()
                    }

                }
                else
                {
                    withAnimation(.easeInOut(duration: 1) ){
                        return NavigationViewForiPad()
                    }

                }


        }


    }
}


struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

, поэтому проблема в том, что при изменении iPhone (плюс размер и максимальный размер) на альбомный или портретный вид изменения не плавные, я много пытаюсь анимировать переход но я не нахожу пути.

Есть идеи или предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...