Представление заголовка не выходит за пределы safeArea SwiftUI - PullRequest
0 голосов
/ 22 марта 2020

У меня есть представление, состоящее из списка, который имеет заголовок. В заголовке есть изображение, и я хочу, чтобы это изображение было расширено по сторонам экрана и игнорировало safeArea. Однако, используя List, я не могу этого добиться. Если бы я использовал ScrollView вместо List, эта реализация работала бы так, как я хочу. Что я должен сделать, чтобы расширить HeaderView в обе стороны? И что я делаю не так?

Вот мой код.


struct MainView: View {
    var body: some View {
        List {
            Section(header: Header()) {
                Text("Hello")
            }
        }
        .edgesIgnoringSafeArea(.all)
    }
}

struct Header: View {
    var body: some View {
        GeometryReader { geo in
            Image("background")
                .resizable()
                .scaledToFill()
                .frame(width: geo.size.width, height: geo.size.height)
                .clipped()
        }
        .frame(height: 180)
    }
}

1 Ответ

0 голосов
/ 23 марта 2020

для ширины вам нужна геометрия родительского просмотра (ширина списка)

import SwiftUI

struct ContentView: View {
    var body: some View {
        GeometryReader { proxy in
        List {
            Section(header: Header(width: proxy.size.width)) {
                Text("Hello")
            }
        }
        .edgesIgnoringSafeArea(.all)
        }
    }
}

struct Header: View {
    let width: CGFloat
    var body: some View {
        GeometryReader { geo in
            Image("background")
                .resizable()
                .scaledToFill()
                .frame(width: self.width, height: geo.size.height)
                .clipped()
        }
        .frame(height: 100)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...