Damian, Вы можете выложить код для RankingHeader и viewModel, так как по опубликованному коду сложно определить свое намерение. Однако вы используете List, но также используете ForEach. Вам не нужны и то, и другое, поскольку List принимает повторяемый список. Попробуйте что-то подобное, которое использует представление навигации для предоставления заголовка:
var body: some View {
NavigationView {
GeometryReader {proxy in
List(0..<4) { index in
Text("hello \(index)")
.foregroundColor(Color.red)
.background(Color.blue)
}
.navigationBarTitle("Events", displayMode: .inline)
.navigationBarItems(
leading:
Button("Print Proxy") {
print("proxy: \(proxy.size)")
}
)
}
}
}
Если вы хотите игнорировать безопасные области, вы можете добавить edgeIgnoringSafeArea (.top) к модификаторам панели навигации, но это заставит список начать под заголовком, что вряд ли будет тем, что вам нужно.