简体   繁体   中英

Sheet Modal does not present whole View in SwiftUI

I am pretty new to SwiftUI programming and ran into the following problem that I cannot find an answer to.

I want to open a sheet modal from my Main View and want to present a simple View with an Rect on it (for testing purposes).

 .sheet(isPresented: $api.showDrawing) {
      
      DrawingViewView()
 }

My DrawingViewView looks like:

    struct DrawingViewView: View {
      var body: some View {
        Rectangle()
          .fill(Color.red)
          .frame(width: 1500, height: 1000)
       }
     }

No matter how big I make the Rect it is never shown bigger than:

在此处输入图像描述

Is there a way to make the sheet bigger in width?

EDIT: I also thought of using a fullScreenCover, but if I open a PKCanvasView in a fullScreenCover pencilKit is acting weird. The lines I draw do not correspond with the pencilInput

EDIT: Apperently the problem is the horizontal orientation. If I turn my iPad vertical I have no problems at all!

Thanks a lot!

Jakob

I think this is the easiest way to do it.

import SwiftUI

struct FullScreenModalView: View {
    @Environment(\.presentationMode) var presentationMode

    var body: some View {
        ZStack {
            Color.red.edgesIgnoringSafeArea(.all)
            Button("Dismiss Modal") {
                presentationMode.wrappedValue.dismiss()
            }
        }
    }
}

struct ContentView: View {
    @State private var isPresented = false

    var body: some View {
        Button("Present!") {
            isPresented.toggle()
        }
        .fullScreenCover(isPresented: $isPresented, content: FullScreenModalView.init)
    }
}

struct ex_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

Hope is what you expected!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM