Как автоматически определить NavigationBarTitle displayMode стать .inline или .large в SwiftUI? - PullRequest
0 голосов
/ 31 октября 2019

У меня есть List внутри navigationView, и я хочу изменить текст List Section всякий раз, когда список прокручивается, и navigationBarTitle становится .inline или .large

Это мой код:

import SwiftUI

struct ContentView: View {

@State private var scrolledUp = false

var body: some View {

    NavigationView {

        if scrolledUp {

            List {
                Section(header: Text("Moved UP"))
                {
                    Text("Line1").bold()
                    Text("Line2").bold()
                    Text("Line2").bold()

                }

                .navigationBarTitle("Setting")
            }

        } else {

            List {
                Section(header: Text("Not Moved"))
                {
                    Text("Line1").bold()
                    Text("Line2").bold()
                    Text("Line2").bold()

                }
            }
            .navigationBarTitle("Setting")
        }  
     }
   }
}

как я могу узнать, что list прокручивается и navigationBar изменяется на .title?

1 Ответ

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

На данный момент я использовал geometryReader для определения положения y у List section header. Во время прокрутки. Если позиция меньше 80, navigationBarTitle меняется на .title.

Работает отлично. Однако я все еще ищу лучшее решение.

...