Untitled
unknown
plain_text
4 years ago
2.7 kB
15
Indexable
//
// ContentView.swift
//
//
import SwiftUI
struct ContentView: View {
@State var centerVertically = false
@State var centerHorizontally = false
@State var showBigView = false
@State var showNextScreen = false
@Namespace var namespace
var body: some View {
ZStack(alignment: Alignment(horizontal: .center, vertical: .bottom)) {
Color.black
if !showBigView {
HStack {
Spacer()
Button(action: {
withAnimation {
centerVertically = true
}
withAnimation(.linear(duration: 0.3)) {
centerHorizontally = true
}
Timer.scheduledTimer(withTimeInterval: 0.7, repeats: false, block: { timer in
withAnimation {
showBigView = true
}
})
Timer.scheduledTimer(withTimeInterval: 1, repeats: false, block: { timer in
withAnimation {
showNextScreen = true
}
})
}) {
Color.white
.frame(width: 30, height: 30)
}
.padding(EdgeInsets(top: 0,
leading: 30,
bottom: centerVertically ? 300 : 30,
trailing: 30))
.matchedGeometryEffect(id: "test", in: namespace)
if centerHorizontally {
Spacer()
}
}
} else {
Color.white
.matchedGeometryEffect(id: "test", in: namespace)
.frame(width: UIScreen.main.bounds.width,
height: 330)
}
if showNextScreen {
Text("Next screen")
.foregroundColor(.black)
.transition(.opacity)
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Editor is loading...