Skip to content

Commit 1b7e47b

Browse files
committed
[#185] ios15LoginPromptView 구현 완료
1 parent 6a7d4ec commit 1b7e47b

File tree

3 files changed

+140
-14
lines changed

3 files changed

+140
-14
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
//
2+
// ios15LoginPromptView.swift
3+
// EATSSU
4+
//
5+
// Created by 최지우 on 11/28/24.
6+
//
7+
8+
import UIKit
9+
10+
final class ios15LoginPromptView: BaseUIView {
11+
12+
// MARK: - UI Components
13+
14+
private let loginAlertLabel = UILabel()
15+
private let appleLoginButton = UIButton()
16+
private let kakaoLoginButton = UIButton()
17+
private let logoImage = UIImageView()
18+
private let logoSubTitleImage = UIImageView()
19+
private let logoStackView = UIStackView()
20+
private let buttonStackView = UIStackView()
21+
private let loginPromptStackView = UIStackView()
22+
23+
24+
// MARK: - Intializer
25+
26+
override init(frame: CGRect) {
27+
super.init(frame: frame)
28+
29+
setViewProperties()
30+
}
31+
32+
// MARK: - Functions
33+
34+
private func setViewProperties() {
35+
loginAlertLabel.do {
36+
$0.text = TextLiteral.SignIn.loginPrompt
37+
$0.textAlignment = .left
38+
$0.numberOfLines = 0
39+
$0.font = EATSSUFontFamily.Pretendard.bold.font(size: 18)
40+
$0.setContentHuggingPriority(.defaultHigh, for: .vertical)
41+
}
42+
43+
appleLoginButton.do {
44+
$0.setImage(EATSSUAsset.Images.Version2.appleLoginButton.image, for: .normal)
45+
}
46+
47+
kakaoLoginButton.do {
48+
$0.setImage(EATSSUAsset.Images.Version2.kakaoLoginButton.image, for: .normal)
49+
}
50+
51+
logoImage.do {
52+
$0.image = EATSSUAsset.Images.Version2.authLogo.image
53+
}
54+
55+
logoSubTitleImage.do {
56+
$0.image = EATSSUAsset.Images.Version2.authSubTitle.image
57+
}
58+
59+
buttonStackView.do {
60+
$0.spacing = 8
61+
}
62+
63+
logoStackView.do {
64+
$0.alignment = .center
65+
}
66+
67+
loginPromptStackView.do {
68+
$0.distribution = .equalSpacing
69+
}
70+
71+
[buttonStackView,logoStackView,loginPromptStackView].forEach {
72+
$0.axis = .vertical
73+
}
74+
}
75+
76+
override func configureUI() {
77+
addSubview(loginPromptStackView)
78+
79+
logoStackView.addArrangedSubviews([logoImage,
80+
logoSubTitleImage])
81+
buttonStackView.addArrangedSubviews([appleLoginButton,
82+
kakaoLoginButton])
83+
loginPromptStackView.addArrangedSubviews([loginAlertLabel,
84+
logoStackView,
85+
buttonStackView])
86+
87+
// loginPromptStackView.backgroundColor = .yellow
88+
// logoStackView.backgroundColor = .gray
89+
// buttonStackView.backgroundColor = .green
90+
// logoImage.backgroundColor = .blue
91+
// logoSubTitleImage.backgroundColor = .red
92+
93+
}
94+
95+
override func setLayout() {
96+
loginAlertLabel.snp.makeConstraints {
97+
$0.top.equalToSuperview()
98+
}
99+
100+
logoImage.snp.makeConstraints {
101+
$0.horizontalEdges.equalToSuperview().inset(100)
102+
$0.height.equalTo(46)
103+
}
104+
105+
logoSubTitleImage.snp.makeConstraints {
106+
$0.width.equalTo(70)
107+
$0.height.equalTo(10)
108+
}
109+
110+
loginPromptStackView.snp.makeConstraints {
111+
$0.horizontalEdges.equalToSuperview().inset(30)
112+
$0.height.equalToSuperview().multipliedBy(0.75)
113+
$0.bottom.equalToSuperview().multipliedBy(0.85)
114+
}
115+
}
116+
}
117+

EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Auth/ViewController/LoginPromptViewController.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ final class LoginPromptViewController: BaseViewController {
1111

1212
// MARK: - UI Components
1313

14-
private let loginPromptView = ios16LoginPromptView()
14+
private let loginPromptView = ios15LoginPromptView()
1515

1616
// MARK: - Functions
1717

EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/ViewController/HomeViewController.swift

+22-13
Original file line numberDiff line numberDiff line change
@@ -112,20 +112,29 @@ final class HomeViewController: BaseViewController {
112112
loginPromptVC.modalPresentationStyle = .pageSheet
113113

114114
// Check if iOS 16+
115-
if #available(iOS 16.0, *) {
116-
if let sheet = loginPromptVC.sheetPresentationController {
117-
let small = UISheetPresentationController.Detent.Identifier("small")
118-
sheet.detents = [
119-
.custom(identifier: small) { context in
120-
0.34 * context.maximumDetentValue
121-
}
122-
]
123-
124-
sheet.prefersScrollingExpandsWhenScrolledToEdge = false
125-
sheet.preferredCornerRadius = 30
126-
}
127-
present(loginPromptVC, animated: true, completion: nil)
115+
// if #available(iOS 16.0, *) {
116+
// if let sheet = loginPromptVC.sheetPresentationController {
117+
// let small = UISheetPresentationController.Detent.Identifier("small")
118+
// sheet.detents = [
119+
// .custom(identifier: small) { context in
120+
// 0.34 * context.maximumDetentValue
121+
// }
122+
// ]
123+
//
124+
// sheet.prefersScrollingExpandsWhenScrolledToEdge = false
125+
// sheet.preferredCornerRadius = 30
126+
// }
127+
// present(loginPromptVC, animated: true, completion: nil)
128+
// }
129+
130+
if let sheet = loginPromptVC.sheetPresentationController {
131+
sheet.detents = [.medium()]
132+
133+
sheet.prefersScrollingExpandsWhenScrolledToEdge = false
134+
sheet.preferredCornerRadius = 30
128135
}
136+
present(loginPromptVC, animated: true, completion: nil)
137+
129138

130139
// showAlertControllerWithCancel(title: "로그인이 필요한 서비스입니다", message: "로그인 하시겠습니까?", confirmStyle: .default) {
131140
// self.changeIntoLoginViewController()

0 commit comments

Comments
 (0)