diff --git a/29th-iOS-Assignment/29th-iOS-Assignment/Assets.xcassets/Google.imageset/Contents.json b/29th-iOS-Assignment/29th-iOS-Assignment/Assets.xcassets/Google.imageset/Contents.json
new file mode 100644
index 0000000..2e7cfcd
--- /dev/null
+++ b/29th-iOS-Assignment/29th-iOS-Assignment/Assets.xcassets/Google.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "Google.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/29th-iOS-Assignment/29th-iOS-Assignment/Assets.xcassets/Google.imageset/Google.png b/29th-iOS-Assignment/29th-iOS-Assignment/Assets.xcassets/Google.imageset/Google.png
new file mode 100644
index 0000000..20eb1c9
Binary files /dev/null and b/29th-iOS-Assignment/29th-iOS-Assignment/Assets.xcassets/Google.imageset/Google.png differ
diff --git a/29th-iOS-Assignment/29th-iOS-Assignment/Storyboards/Base.lproj/Main.storyboard b/29th-iOS-Assignment/29th-iOS-Assignment/Storyboards/Base.lproj/Main.storyboard
index 2cbb98d..493b66a 100644
--- a/29th-iOS-Assignment/29th-iOS-Assignment/Storyboards/Base.lproj/Main.storyboard
+++ b/29th-iOS-Assignment/29th-iOS-Assignment/Storyboards/Base.lproj/Main.storyboard
@@ -16,50 +16,41 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
@@ -134,63 +104,48 @@
-
-
-
-
-
-
-
+
+
-
+
-
-
-
+
-
+
-
-
-
+
-
+
-
-
-
+
-
+
-
-
-
-
+
-
+
+
-
+
-
-
-
+
@@ -200,38 +155,23 @@
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
@@ -246,23 +186,16 @@
-
-
-
-
-
-
-
+
+
-
+
-
-
-
+
@@ -272,24 +205,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/29th-iOS-Assignment/29th-iOS-Assignment/ViewControllers/LoginViewController.swift b/29th-iOS-Assignment/29th-iOS-Assignment/ViewControllers/LoginViewController.swift
index be9f72a..e5b94c8 100644
--- a/29th-iOS-Assignment/29th-iOS-Assignment/ViewControllers/LoginViewController.swift
+++ b/29th-iOS-Assignment/29th-iOS-Assignment/ViewControllers/LoginViewController.swift
@@ -7,12 +7,18 @@
import UIKit
+import SnapKit
+
class LoginViewController: UIViewController {
// MARK: - Properties
+ @IBOutlet weak var logoImageView: UIImageView!
+ @IBOutlet weak var titleLabel: UILabel!
+ @IBOutlet weak var subLabel: UILabel!
@IBOutlet weak var nameTextField: UITextField!
@IBOutlet weak var emailTextField: UITextField!
@IBOutlet weak var pwTextField: UITextField!
+ @IBOutlet weak var signUpButton: UIButton!
@IBOutlet weak var nextButton: UIButton!
// MARK: - Life Cycle
@@ -20,11 +26,70 @@ class LoginViewController: UIViewController {
super.viewDidLoad()
configUI()
+ setupLayout()
setupAddTarget()
hideKeyboardWhenTappedAround()
}
// MARK: - Custom Method
+ func configUI() {
+ /// 초기 다음버튼 비활성화
+ nextButton.isEnabled = false
+
+ logoImageView.image = UIImage(named: "Google")
+
+ subLabel.text = "Youtube도 이동하면서 계속하세요.\n앱 및 safari에서도 Google 서비스에 로그인됩니다."
+ }
+
+ func setupLayout() {
+ logoImageView.snp.makeConstraints { make in
+ make.top.equalToSuperview().offset(100)
+ make.centerX.equalToSuperview()
+ make.width.equalTo(117)
+ make.height.equalTo(40)
+ }
+
+ titleLabel.snp.makeConstraints { make in
+ make.top.equalTo(logoImageView.snp.bottom).offset(14)
+ make.centerX.equalToSuperview()
+ }
+
+ subLabel.snp.makeConstraints { make in
+ make.top.equalTo(titleLabel.snp.bottom).offset(14)
+ make.centerX.equalToSuperview()
+ }
+
+ nameTextField.snp.makeConstraints { make in
+ make.top.equalTo(subLabel.snp.bottom).offset(68)
+ make.leading.trailing.equalToSuperview().inset(22)
+ make.height.equalTo(50)
+ }
+
+ emailTextField.snp.makeConstraints { make in
+ make.top.equalTo(nameTextField.snp.bottom).offset(17)
+ make.leading.trailing.equalToSuperview().inset(22)
+ make.height.equalTo(50)
+ }
+
+ pwTextField.snp.makeConstraints { make in
+ make.top.equalTo(emailTextField.snp.bottom).offset(17)
+ make.leading.trailing.equalToSuperview().inset(22)
+ make.height.equalTo(50)
+ }
+
+ signUpButton.snp.makeConstraints { make in
+ make.top.equalTo(pwTextField.snp.bottom).offset(73)
+ make.leading.equalToSuperview().inset(22)
+ }
+
+ nextButton.snp.makeConstraints { make in
+ make.centerY.equalTo(signUpButton.snp.centerY)
+ make.trailing.equalToSuperview().inset(22)
+ make.width.equalTo(74)
+ make.height.equalTo(50)
+ }
+ }
+
func setupAddTarget() {
/// 요소에 따라 정의해둔 함수를 실행
nameTextField.addTarget(self, action: #selector(textFieldDidChange(textField:)), for: UIControl.Event.editingChanged)
@@ -32,11 +97,6 @@ class LoginViewController: UIViewController {
pwTextField.addTarget(self, action: #selector(textFieldDidChange(textField:)), for: UIControl.Event.editingChanged)
}
- func configUI() {
- /// 초기 다음버튼 비활성화
- nextButton.isEnabled = false
- }
-
// MARK: - @IBAction
@IBAction func touchUpToSuccess(_ sender: Any) {
guard let nextVC = self.storyboard?.instantiateViewController(withIdentifier: "SuccessViewController") as? SuccessViewController else {return}
diff --git a/29th-iOS-Assignment/29th-iOS-Assignment/ViewControllers/SignupViewController.swift b/29th-iOS-Assignment/29th-iOS-Assignment/ViewControllers/SignupViewController.swift
index b74a264..c860f91 100644
--- a/29th-iOS-Assignment/29th-iOS-Assignment/ViewControllers/SignupViewController.swift
+++ b/29th-iOS-Assignment/29th-iOS-Assignment/ViewControllers/SignupViewController.swift
@@ -7,13 +7,18 @@
import UIKit
+import SnapKit
+
class SignupViewController: UIViewController {
// MARK: - Properties
+ @IBOutlet weak var logoImageView: UIImageView!
+ @IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var nameTextField: UITextField!
@IBOutlet weak var emailTextField: UITextField!
@IBOutlet weak var pwTextField: UITextField!
@IBOutlet weak var showPwButton: UIButton!
+ @IBOutlet weak var showPwLabel: UILabel!
@IBOutlet weak var nextButton: UIButton!
// MARK: - Life Cycle
@@ -21,11 +26,68 @@ class SignupViewController: UIViewController {
super.viewDidLoad()
configUI()
+ setupLayout()
setupAddTarget()
hideKeyboardWhenTappedAround()
}
// MARK: - Custom Method
+ func configUI() {
+ /// 초기 다음버튼 비활성화
+ nextButton.isEnabled = false
+ logoImageView.image = UIImage(named: "Google")
+
+ }
+
+ func setupLayout() {
+ logoImageView.snp.makeConstraints { make in
+ make.top.equalToSuperview().offset(100)
+ make.centerX.equalToSuperview()
+ make.width.equalTo(117)
+ make.height.equalTo(40)
+ }
+
+ titleLabel.snp.makeConstraints { make in
+ make.top.equalTo(logoImageView.snp.bottom).offset(14)
+ make.centerX.equalToSuperview()
+ }
+
+ nameTextField.snp.makeConstraints { make in
+ make.top.equalTo(titleLabel.snp.bottom).offset(128)
+ make.leading.trailing.equalToSuperview().inset(22)
+ make.height.equalTo(50)
+ }
+
+ emailTextField.snp.makeConstraints { make in
+ make.top.equalTo(nameTextField.snp.bottom).offset(17)
+ make.leading.trailing.equalToSuperview().inset(22)
+ make.height.equalTo(50)
+ }
+
+ pwTextField.snp.makeConstraints { make in
+ make.top.equalTo(emailTextField.snp.bottom).offset(17)
+ make.leading.trailing.equalToSuperview().inset(22)
+ make.height.equalTo(50)
+ }
+
+ showPwButton.snp.makeConstraints { make in
+ make.top.equalTo(pwTextField.snp.bottom).offset(17)
+ make.leading.equalToSuperview().inset(21)
+ make.width.height.equalTo(18)
+ }
+
+ showPwLabel.snp.makeConstraints { make in
+ make.centerY.equalTo(showPwButton.snp.centerY)
+ make.leading.equalTo(showPwButton.snp.trailing).offset(11)
+ }
+
+ nextButton.snp.makeConstraints { make in
+ make.top.equalTo(showPwButton.snp.bottom).offset(31)
+ make.leading.trailing.equalToSuperview().inset(22)
+ make.height.equalTo(50)
+ }
+ }
+
func setupAddTarget() {
/// 요소에 따라 정의해둔 함수를 실행
nameTextField.addTarget(self, action: #selector(textFieldDidChange(textField:)), for: UIControl.Event.editingChanged)
@@ -34,11 +96,6 @@ class SignupViewController: UIViewController {
showPwButton.addTarget(self, action: #selector(showPwButtonClicked(button:)), for: .touchUpInside)
}
- func configUI() {
- /// 초기 다음버튼 비활성화
- nextButton.isEnabled = false
- }
-
// MARK: - @IBAction
@IBAction func touchUpToSuccess(_ sender: Any) {
guard let nextVC = self.storyboard?.instantiateViewController(withIdentifier: "SuccessViewController") as? SuccessViewController else {return}
diff --git a/29th-iOS-Assignment/29th-iOS-Assignment/ViewControllers/SuccessViewController.swift b/29th-iOS-Assignment/29th-iOS-Assignment/ViewControllers/SuccessViewController.swift
index 60a188e..4e6aa45 100644
--- a/29th-iOS-Assignment/29th-iOS-Assignment/ViewControllers/SuccessViewController.swift
+++ b/29th-iOS-Assignment/29th-iOS-Assignment/ViewControllers/SuccessViewController.swift
@@ -10,17 +10,52 @@ import UIKit
class SuccessViewController: UIViewController {
// MARK: - Properties
+ @IBOutlet weak var logoImageView: UIImageView!
@IBOutlet weak var nameLabel: UILabel!
+ @IBOutlet weak var okayButton: UIButton!
+ @IBOutlet weak var anotherAccountButton: UIButton!
var message: String?
// MARK: - Life Cycle
override func viewDidLoad() {
super.viewDidLoad()
+ setupLayout()
+ configUI()
setNameLabel()
}
// MARK: - Custom Method
+ func configUI() {
+ anotherAccountButton.setTitle("다른 계정으로 로그인하기", for: .normal)
+ logoImageView.image = UIImage(named: "Google")
+ }
+
+ func setupLayout() {
+ logoImageView.snp.makeConstraints { make in
+ make.top.equalToSuperview().offset(207)
+ make.centerX.equalToSuperview()
+ make.width.equalTo(117)
+ make.height.equalTo(40)
+ }
+
+ nameLabel.snp.makeConstraints { make in
+ make.top.equalTo(logoImageView.snp.bottom).offset(14)
+ make.centerX.equalToSuperview()
+ }
+
+ okayButton.snp.makeConstraints { make in
+ make.top.equalTo(nameLabel.snp.bottom).offset(53)
+ make.leading.trailing.equalToSuperview().inset(22)
+ make.height.equalTo(50)
+ }
+
+ anotherAccountButton.snp.makeConstraints { make in
+ make.top.equalTo(okayButton.snp.bottom).offset(23)
+ make.centerX.equalToSuperview()
+ }
+ }
+
/// 받아온 이름 넣는 함수
func setNameLabel() {
if let name = message {