In this tutorial we're going to create Image background onboarding Screen using GeometryReader and ZStack
ContentView.swift
//
// ContentView.swift
// Test
//
// Created by Cairocoders
//
import SwiftUI
struct ContentView: View {
@State private var showingSheet = false
var body: some View {
GeometryReader { geometry in
ZStack {
Image("bg2")
.resizable()
.aspectRatio(geometry.size, contentMode: .fill)
.edgesIgnoringSafeArea(.all)
VStack {
Image("logo")
.resizable()
.aspectRatio(contentMode: .fit)
.foregroundColor(.white)
.padding(.bottom, 30)
Text("Amazing Taste & Beautiful Place")
.font(.largeTitle)
.foregroundColor(.white)
Text("Discover the most amazing places in the world and share your experience Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..")
.foregroundColor(.white)
.frame(maxWidth: 320)
.padding(.top, 20)
.padding(.bottom, 50)
Spacer()
Rectangle()
.frame(height: 1)
.foregroundColor(.white)
HStack {
Spacer()
Button("Login") {
showingSheet.toggle()
}
.font(.title3)
.foregroundColor(.white)
.padding(20)
Spacer()
Button("Sign Up") {
showingSheet.toggle()
}
.font(.title3)
.foregroundColor(.white)
.padding(20)
Spacer()
}
.sheet(isPresented: $showingSheet) {
LoginView()
}
}//End VStack
}// End ZStack
}
}// End body
}
struct LoginView: View {
@Environment(\.presentationMode) var presentationMode
var body: some View {
Button("Press to dismiss") {
presentationMode.wrappedValue.dismiss()
}
.font(.title)
.padding()
.background(Color.black)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
