SwiftUI NavigationView с прозрачным фоном - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть это представление с градиентом в качестве фона, я хочу поместить другое представление поверх него, это последнее представление имеет NavigationView внутри, но по какой-то причине я не могу сделать так, чтобы у него был прозрачный фон, чтобы я мог показать от градиента позади.

Еще более странным является тот факт, что даже невозможно изменить цвет фона NavigationView , я смотрел везде, но кажется, что я не могу найти какой-либо метод, который позволяет мне изменить цвет или сделать его прозрачным

Первое представление (изображение с градиентным фоном, которое я хочу отобразить)

ZStack {  // Global Stack for views
    //Background gradient
    VStack {
        LinearGradient(gradient: Gradient(colors: [Color("background2"), Color(.systemBackground)]), startPoint: .top, endPoint: .bottom)
            .frame(height: screenHeight/4)
        Spacer()
    }.background(Color(.systemBackground))

    Subjects()

    VStack {
        HStack {    // Topbar with menu-btn and profile-btn
            MenuButton(show: self.$showMenu)
                .disabled(self.showProfile)
            Spacer()

            HStack {
                TodayButton(show: self.$showToday)
                ProfileButton(show: self.$showProfile)
            }
        }
        Spacer()
    }
    .padding()
    .padding(.top, screenHeight*0.05)
}

First View

Второй вид (вид с NavigationView, который я хочу сделать прозрачным)

struct Subjects: View {

    let subjects = [
        Subject(id: UUID(), name: "Matematica", color: "ff06f0", grades: [3,7,6.5,5.5]),
        Subject(id: UUID(), name: "Informatica", color: "5506f9", grades: [7,5,4.5,6,9]),
        Subject(id: UUID(), name: "Geografia", color: "f39904", grades: [2,5,10,6.5,9,10,4.5])
    ]

    var body: some View {

        ZStack(alignment: .bottomTrailing) {

            ZStack {
                NavigationView {
                    VStack(spacing: 5) {
                        ScrollView(.vertical, showsIndicators: false) {
                            VStack(spacing: 30) {
                                ForEach(subjects) { subject in
                                    SubjectCard(subject: subject)
                                }
                            }.padding()
                                .padding(.top)
                        }
                    }.navigationBarTitle(Text("Materie"))
                }
            }.offset(y: screenHeight*0.1)

            ActionButton(icon: "plus")
        }
    }
}

Second view

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...