728x90
앱 설명
- 로그인, 회원가입 페이지를 만들어봤습니다.
문법
- var : 지역변수
- || : or
- SecureField : Text가 암호화 되어 보여짐
- TextField : Text를 입력받아 보여줌
- private : 뷰안의 값이 계속 바뀌기 때문에 내부의 View만 사용이 가능하다.
- NavigationView : View간의 이동
- Ellipse : 타원의 도형
- Text : 글자
- \n : 글자안에 칸 내리기
- multilineTextAlignment : 다중 행 텍스트의 정렬을 설정
- NavigationLink : 새로운 뷰로 이동
- NavigationBarHidden(true) : Navigation Back버튼의 값을 True로 바꾸어 back을 없앰
- edgesIgnoringSafeArea : 부분을 채움
import SwiftUI
struct LoginView: View {
@State private var email: String = ""
@State private var password: String = ""
@State var isLinkActive = false
var body: some View {
NavigationView {
ZStack ( alignment: .topLeading) {
VStack {
VStack (spacing : 40) {
ZStack {
Ellipse()
.frame(width: 510, height: 478)
.padding(.leading, -200)
.foregroundColor(Color("color2"))
.padding(.top, -200)
Ellipse()
.frame(width: 458, height: 420)
.padding(.trailing, -500)
.foregroundColor(Color("color1"))
.padding(.top, -200)
Text("Welcom \\n Back")
.foregroundColor(.white)
.font(.system(size: 35))
.fontWeight(.bold)
.multilineTextAlignment(.leading)
.frame(maxWidth: .infinity, alignment: .leading)
.padding(.leading, 20)
}
VStack (spacing: 30) {
VStack (spacing: 30) {
CustomTextField(placeHolder: "Email", imageName: "envelope", bColor: "textColor1", tOpacity: 0.6, value: $email)
CustomTextField(placeHolder: "Password", imageName: "lock", bColor: "textColor1", tOpacity: 0.6, value: $password)
}
VStack (alignment: .trailing){
Text("Forgot Password")
.fontWeight(.medium)
NavigationLink(destination: SignUpView(), isActive: $isLinkActive) {
Button(action: {
self.isLinkActive = true
}, label: {
CustomButton(title: "SIGN IN", bgColor: "color1")
})
}.padding(.horizontal, 20)
HStack {
Button(action: {}, label: {
Image("apple")
.resizable()
.frame(width: 30, height: 30)
.padding(.horizontal, 60)
.padding(.vertical , 15)
.background(Color("button-bg"))
.cornerRadius(15)
})
Spacer()
Button(action: {}, label: {
Image("google")
.resizable()
.frame(width: 30, height: 30)
.padding(.horizontal, 60)
.padding(.vertical , 15)
.background(Color("button-bg"))
.cornerRadius(15)
})
}
.padding(.horizontal, 20)
}
}
Spacer()
HStack{
Text("Don't have an acoount?")
.fontWeight(.bold)
.foregroundColor(.white)
.font(.system(size: 18))
Button(action: {
self.isLinkActive = true
}, label: {
Text("SIGN UP")
.font(.system(size: 18))
.foregroundColor(Color("color1"))
.fontWeight(.bold)
})
}
.frame(height: 63)
.frame(minWidth: 0, maxWidth: .infinity)
.background(Color("color2"))
.ignoresSafeArea()
}
}
}
}
}
}
struct LoginView_Previews: PreviewProvider {
static var previews: some View {
LoginView()
}
}
728x90
'SwiftUI > 개발' 카테고리의 다른 글
아이폰 키패드 클론코딩 (0) | 2023.01.12 |
---|---|
React Native Interpolation (0) | 2023.01.09 |
AimatedTabIcon (0) | 2023.01.07 |
배달의 민족 - 로그인 페이지 (0) | 2023.01.03 |
BlogApp (0) | 2023.01.03 |