SwiftUI보기 컨텐츠 레이아웃이 갑자기 팝업 / 점프 표시됩니까?


16

양식 또는 목록 (그룹화 된)으로 새보기로 탐색 할 때 컨텐츠는 탐색보기 제목의 맨 아래에서 1/4 정도 아래로 표시되며 약 0.5 초 후에 올바른 위치로 "팝"됩니다. 아주 못생긴. 이것이 SwiftUI 버그인지 확실하지 않거나 무언가를 잘못 구성하고 있습니까?

나는 시뮬레이터와 장치 모두에서 동일한 결과로 이것을 테스트했습니다.

내비게이션 링크가 처리되는 방식과 관련이 있다고 생각하십니까? 모든 탐색 링크는 ContentView가 나타날 때 대상보기에서 init ()를 호출합니다. 나에게 이것은 이해가되지 않는다. 대상 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")
    }

}

답변:


10

헤더 텍스트가있는 섹션을 제공하면 텍스트가 비어 있어도 문제가 해결됩니다. 탐색 제목과 첫 번째 행 사이에 공백이 생길 수 있습니다.

그룹화 된 양식 및 목록 모두에서 작동합니다.

struct TestView: View {

    var body: some View {
        Form {
            Section(header: Text("")) {
                Text("Test View")
            }
        }
        .nvigationBarTitle("Test View")
    }
}

이 게시물의 두 가지 솔루션을 모두 시도했지만 여전히 발생합니다. 다른 일이 벌어 질 수 있습니까? 너무 이상합니다.
Lkabo

0

GroupedListStyle List에서 NavigationLink를 통해 푸시 된 List 에서이 문제가 발생했습니다. 그렇게하면 SwiftUI는 푸시 된 목록을 그룹화 된 것으로 간주합니다. 이 경우 listStyle을 재설정하면 작동합니다.

List { ... }.listStyle(DefaultListStyle())
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.