Під час переходу до нового виду з формою або списком (згрупованим) вміст з’являється приблизно на чверть шляху вниз від нижньої частини заголовка перегляду навігації, а потім «вискакує» до потрібного місця приблизно на півтори секунди пізніше. Дуже огидний. Не впевнений, що це помилка SwiftUI чи я щось неправильно структурую?
Я перевірив це як на тренажері, так і на пристрої з однаковими результатами.
Я думаю, що це має щось спільне з тим, як обробляються навігаційні посилання? Кожне навігаційне посилання викликає init () на його цільовому вікні, коли з'являється ContentView. Для мене це не має сенсу, чи не слід називати пункт призначення init () лише в момент, коли користувач фактично натисне посилання навігації?
Я також спробував це з аркушем, і проблема не існує в аркушах, лише коли використовуються навігаційні посилання з формами або списками, стилізованими як згруповані.
Код із абсолютно нової програми для єдиного перегляду:
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")
}
}