Mercurial > public > lazybear
view LazyBear/Views/Onboarding/SignUpView.swift @ 312:d0f7e9231178
Implementing CloudKit
author | Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com> |
---|---|
date | Thu, 25 Mar 2021 17:07:59 +0100 |
parents | |
children | c6d1940aa68e |
line wrap: on
line source
// // SignUp.swift // LazyBear // // Created by Dennis Concepción Martín on 25/3/21. // import SwiftUI struct SignUp: View { @State var username: String = "" @State var textFieldIsEditing = false var body: some View { GeometryReader { geo in VStack(alignment: .leading) { Text("Sign Up") .font((.system(size: 50, weight: .black))) .padding(.vertical) Text("Let us customise your experience") .opacity(0.5) .padding(.bottom) ProfileAvatar(size: geo.size.height * 0.3, textFieldIsEditing: $textFieldIsEditing) .padding(.bottom) UserNameTextfield(username: $username, isEditing: $textFieldIsEditing) Spacer() NextButton(text: "Continue") .padding(.bottom, 50) } .padding(.horizontal) } } } struct SignUp_Previews: PreviewProvider { static var previews: some View { SignUp() } } struct ProfileAvatar: View { @State var size: CGFloat @Binding var textFieldIsEditing: Bool var body: some View { HStack { Spacer() ZStack(alignment: .topTrailing) { Image("boyAvatar") .resizable() .frame(maxWidth: size, maxHeight: size) .scaledToFit() .clipShape(Circle()) if !textFieldIsEditing { Image(systemName: "photo") .foregroundColor(.white) .padding() .background( Circle() .foregroundColor(Color("default")) ) .padding() } } Spacer() } } } struct UserNameTextfield: View { @Binding var username: String @Binding var isEditing: Bool var body: some View { VStack { Text("Your username") .font(.headline) TextField("Username", text: $username) { isEditing in self.isEditing = isEditing } onCommit: { print(username) } .padding(8) .background( RoundedRectangle(cornerRadius: 10) .foregroundColor(Color(.systemGray6)) ) } } } struct NextButton: View { var text: String var body: some View { RoundedRectangle(cornerRadius: 10) .foregroundColor(Color("default")) .frame(height: 50) .overlay( Text(text) .foregroundColor(.white) ) } }