138 lines
4.8 KiB
Swift
138 lines
4.8 KiB
Swift
|
import SwiftUI
|
|||
|
|
|||
|
struct ContentView: View {
|
|||
|
@State private var login: String = ""
|
|||
|
@State private var password: String = ""
|
|||
|
@State private var isRegistrationVisible: Bool = false
|
|||
|
|
|||
|
var body: some View {
|
|||
|
VStack(alignment: .leading, spacing: 10) {
|
|||
|
Text("Добро пожаловать!")
|
|||
|
.font(.title)
|
|||
|
.padding(.top, 20)
|
|||
|
.padding(.leading, 10)
|
|||
|
|
|||
|
HStack(spacing: -20) {
|
|||
|
Button(action: {
|
|||
|
// Действие для кнопки "Вход"
|
|||
|
isRegistrationVisible = false
|
|||
|
}) {
|
|||
|
Text("Вход")
|
|||
|
.padding()
|
|||
|
.frame(minWidth: 0, maxWidth: .infinity)
|
|||
|
.background(isRegistrationVisible ? Color.gray.opacity(0.2) : Color.blue)
|
|||
|
.foregroundColor(.white)
|
|||
|
.cornerRadius(20)
|
|||
|
}
|
|||
|
|
|||
|
Button(action: {
|
|||
|
// Действие для кнопки "Регистрация"
|
|||
|
isRegistrationVisible = true
|
|||
|
}) {
|
|||
|
Text("Регистрация")
|
|||
|
.padding()
|
|||
|
.frame(minWidth: 0, maxWidth: .infinity)
|
|||
|
.background(isRegistrationVisible ? Color.blue : Color.gray.opacity(0.2))
|
|||
|
.foregroundColor(.white)
|
|||
|
.cornerRadius(20)
|
|||
|
}
|
|||
|
}
|
|||
|
.padding(.top, 10)
|
|||
|
.padding(.horizontal, 10)
|
|||
|
|
|||
|
Color.clear
|
|||
|
.frame(height: 15)
|
|||
|
|
|||
|
if isRegistrationVisible {
|
|||
|
RegistrationView()
|
|||
|
} else {
|
|||
|
TextField("Телефон, почта или ник", text: $login)
|
|||
|
.padding()
|
|||
|
.background(Color.gray.opacity(0.1))
|
|||
|
.cornerRadius(10)
|
|||
|
.padding(.horizontal, 10)
|
|||
|
.frame(height: 60)
|
|||
|
|
|||
|
TextField("Пароль", text: $password)
|
|||
|
.padding()
|
|||
|
.background(Color.gray.opacity(0.1))
|
|||
|
.cornerRadius(10)
|
|||
|
.padding(.horizontal, 10)
|
|||
|
.frame(height: 60)
|
|||
|
}
|
|||
|
|
|||
|
Button(action: {
|
|||
|
// Действие для кнопки "Забыли пароль?"
|
|||
|
}) {
|
|||
|
Text("Забыли пароль?")
|
|||
|
.foregroundColor(.blue)
|
|||
|
.padding(.top, 10)
|
|||
|
.padding(.horizontal, 10)
|
|||
|
}
|
|||
|
|
|||
|
Spacer()
|
|||
|
|
|||
|
Button(action: {
|
|||
|
// Действие для кнопки "Продолжить"
|
|||
|
}) {
|
|||
|
Text("Продолжить")
|
|||
|
.padding()
|
|||
|
.frame(minWidth: 0, maxWidth: .infinity)
|
|||
|
.background(Color.gray.opacity(0.2))
|
|||
|
.foregroundColor(.black)
|
|||
|
.cornerRadius(20)
|
|||
|
}
|
|||
|
.padding(.bottom, 20) // Добавляем отступ снизу
|
|||
|
}
|
|||
|
.padding(.horizontal, 10)
|
|||
|
.frame(maxWidth: .infinity, maxHeight: .infinity)
|
|||
|
.padding(.bottom, 10) // Добавляем отступ снизу для контейнера
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
struct RegistrationView: View {
|
|||
|
@State private var name: String = ""
|
|||
|
@State private var surname: String = ""
|
|||
|
@State private var email: String = ""
|
|||
|
@State private var password: String = ""
|
|||
|
|
|||
|
var body: some View {
|
|||
|
VStack(alignment: .leading, spacing: 10) {
|
|||
|
TextField("Имя", text: $name)
|
|||
|
.padding()
|
|||
|
.background(Color.gray.opacity(0.1))
|
|||
|
.cornerRadius(10)
|
|||
|
.padding(.horizontal, 10)
|
|||
|
.frame(height: 60)
|
|||
|
|
|||
|
TextField("Фамилия", text: $surname)
|
|||
|
.padding()
|
|||
|
.background(Color.gray.opacity(0.1))
|
|||
|
.cornerRadius(10)
|
|||
|
.padding(.horizontal, 10)
|
|||
|
.frame(height: 60)
|
|||
|
|
|||
|
TextField("Email", text: $email)
|
|||
|
.padding()
|
|||
|
.background(Color.gray.opacity(0.1))
|
|||
|
.cornerRadius(10)
|
|||
|
.padding(.horizontal, 10)
|
|||
|
.frame(height: 60)
|
|||
|
|
|||
|
TextField("Пароль", text: $password)
|
|||
|
.padding()
|
|||
|
.background(Color.gray.opacity(0.1))
|
|||
|
.cornerRadius(10)
|
|||
|
.padding(.horizontal, 10)
|
|||
|
.frame(height: 60)
|
|||
|
}
|
|||
|
.padding(.horizontal, 10)
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
struct ContentView_Previews: PreviewProvider {
|
|||
|
static var previews: some View {
|
|||
|
ContentView()
|
|||
|
}
|
|||
|
}
|