SwiftUI просматривать макет контента неожиданно появляются / прыжки появляются? - PullRequest
0 голосов
/ 08 ноября 2019

При переходе к новому представлению с формой или списком (сгруппированным) содержимое отображается примерно на четверть пути вниз от нижней части заголовка представления навигации, а затем «всплывает» в правильном месте примерно на половину. второй позже. Очень некрасиво. Не уверен, что это ошибка 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")
    }

}

1 Ответ

0 голосов
/ 08 ноября 2019

Предоставление раздела с текстом заголовка устраняет проблему, даже если текст пустой. Хотя это приведет к разрыву между заголовком навигации и первой строкой.

Работает с формами и списками, стилизованными как сгруппированные.

struct TestView: View {

    var body: some View {
        Form {
            Section(header: Text("")) {
                Text("Test View")
            }
        }
        .nvigationBarTitle("Test View")
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...