SwiftUi PageView проблема - PullRequest
0 голосов
/ 04 марта 2020

Моя проблема в том, что я пытаюсь представить полноэкранный вертикальный анимированный вид поверх просмотра страницы, но жест просмотра страницы все еще работает, и я могу видеть элементы управления страницы.

Есть ли шансы представить представление на верх страницы (на самом деле мне нужно отобразить его перетаскиванием)

    let appState: AppState
    @EnvironmentObject var unit: AudioUnit
    @Environment(\.interactors) var interactors: InteractorsContainer
    @State var isSettingsScreenPresenting: Bool = false

    private let cancelBag = CancelBag()

    let swipeGesture = DragGesture()
    init(appState: AppState) {
        self.appState = appState
    }

    var body: some View {
        ZStack() {
            // View with gradient, speaker Image and blur in bottom
            BackgroundWithSpeakerImageView().environmentObject(unit)

            ZStack {
                GeometryReader { geometry in
                    VStack {
                        Spacer()
                            .frame(width: geometry.size.width, height: geometry.size.height / 2, alignment: .top)
                        ControlsView.init().environmentObject(self.appState)
                            .environmentObject(self.unit)
                        Spacer()
                            .frame(width: geometry.size.width, height: 82, alignment: .top)
                        Button(action: {
                            withAnimation{
                                self.isSettingsScreenPresenting = true
                            }
                        }){
                            Image(R.image.settingsArrow.name)
                                .foregroundColor(.white)
                        }
                        Spacer()
                            .frame(width: geometry.size.width, height: 69, alignment: .top)
                    }
                }
                .onReceive(self.unit.openStateSubject.updates(for: \.self), perform: { (value) in
                    if value {
                        self.interactors.settingsInteractors[self.unit].setup()
                    }
            })
            }
            ZStack {
                SettingsView.init()
                    .offset(x: 0, y: isSettingsScreenPresenting ? 0 : UIScreen.main.bounds.size.height )
                    .environmentObject(self.appState)
                    .environmentObject(self.unit)
            }
        }
    }
}```
...