SwiftUI melihat tata letak konten tanpa terduga muncul pop / melompat?

16

Saat bernavigasi ke tampilan baru dengan formulir, atau daftar (dikelompokkan), konten muncul sekitar seperempat jalan turun dari bagian bawah judul tampilan navigasi, kemudian "muncul" ke lokasi yang benar sekitar setengah detik kemudian. Sangat jelek. Tidak yakin apakah ini bug SwiftUI atau saya salah menata sesuatu?

Saya telah menguji ini pada simulator dan perangkat dengan hasil yang sama.

Saya pikir ini ada hubungannya dengan cara menangani tautan navigasi? Setiap tautan navigasi memanggil init () pada tampilan tujuan ketika ContentView muncul. Bagi saya ini tidak masuk akal, bukankah seharusnya tujuan init () hanya disebut saat pengguna benar-benar mengklik tautan navigasi?

Saya telah mencoba ini dengan sheet juga dan masalahnya tidak ada dengan sheet, hanya ketika menggunakan tautan navigasi dengan bentuk atau daftar yang ditata sebagai dikelompokkan.

Kode dari aplikasi tampilan tunggal baru:

struct ContentView: View {

    var body: some View {
        NavigationView {
            NavigationLink(destination: TestView()) {
                Text("Test Link")
            }
        .navigationBarTitle("Content View")
        }
    }

}

struct TestView: View {

    var body: some View {
        Form {
            Text("Test View")
        }
        .navigationBarTitle("Test View")
    }

}
SybrSyn
sumber

Jawaban:

10

Menyediakan bagian dengan teks tajuk memperbaiki masalah, bahkan jika teks kosong. Meskipun ini akan meninggalkan celah antara judul navigasi dan baris pertama.

Bekerja dengan kedua Formulir & Daftar yang ditata sebagai dikelompokkan.

struct TestView: View {

    var body: some View {
        Form {
            Section(header: Text("")) {
                Text("Test View")
            }
        }
        .nvigationBarTitle("Test View")
    }
}
SybrSyn
sumber
1
Mencoba kedua solusi di pos ini, masih terjadi. Apa lagi yang bisa terjadi? Sangat aneh.
Lkabo
0

Saya punya masalah dengan Daftar yang didorong melalui NavigationLink dari Daftar GroupedListStyle. Ketika Anda melakukan itu, maka tampaknya SwiftUI juga menganggap Daftar yang didorong sebagai dikelompokkan. Mengatur ulang listStyle akan berfungsi dalam kasus ini:

List { ... }.listStyle(DefaultListStyle())
retendo
sumber