DEV Community

Discussion on: Take screenshots of SwiftUI Views

Collapse
 
kevingreen22 profile image
Kevin Green • Edited

I tried putting the closure in multiple different ways but it always shows the whole screen and not just the view I want captured. Here is some code from my project.
(I did see that iOS 16 has some new share screen features but im targeting iOS 14+)

struct ContentView: View {
    //... some environmentObjects
    var body: some View {
        ZStack {
            canvas
                .snapshotView { snap in
                    snapshotMaker = snap
                }
            pallet
        }   
    }

    var canvas: some View {
        Canvas()
    }
}

struct Canvas: View {
    //... some environmentObjects
    var body: some View {
        Rectangle()
            .overlay(
                // Place current images on the canvas
                ForEach(images) { $0 }
            )
    }
}
Enter fullscreen mode Exit fullscreen mode

I've tried putting the canvas and pallet in their own ZStacks.
I want a snapshot of just the canvas without the pallet.

Thanks for your help. Hope your having fun at WWDC.

Thread Thread
 
gualtierofr profile image
Gualtiero Frigerio

oh I see, I've tried with a ZStack and it takes a screenshot of everything. Basically what you see on screen is what you see on the png, while you want a screenshot of a partial content of the ZStack.
I will try to see if there is a solution to that