Skip to content

Commit

Permalink
[#185] ios15LoginPromptView 구현 완료
Browse files Browse the repository at this point in the history
  • Loading branch information
CJiu01 committed Nov 28, 2024
1 parent 6a7d4ec commit 1b7e47b
Show file tree
Hide file tree
Showing 3 changed files with 140 additions and 14 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
//
// ios15LoginPromptView.swift
// EATSSU
//
// Created by 최지우 on 11/28/24.
//

import UIKit

final class ios15LoginPromptView: BaseUIView {

// MARK: - UI Components

private let loginAlertLabel = UILabel()
private let appleLoginButton = UIButton()
private let kakaoLoginButton = UIButton()
private let logoImage = UIImageView()
private let logoSubTitleImage = UIImageView()
private let logoStackView = UIStackView()
private let buttonStackView = UIStackView()
private let loginPromptStackView = UIStackView()


// MARK: - Intializer

override init(frame: CGRect) {
super.init(frame: frame)

setViewProperties()
}

// MARK: - Functions

private func setViewProperties() {
loginAlertLabel.do {
$0.text = TextLiteral.SignIn.loginPrompt
$0.textAlignment = .left
$0.numberOfLines = 0
$0.font = EATSSUFontFamily.Pretendard.bold.font(size: 18)
$0.setContentHuggingPriority(.defaultHigh, for: .vertical)
}

appleLoginButton.do {
$0.setImage(EATSSUAsset.Images.Version2.appleLoginButton.image, for: .normal)
}

kakaoLoginButton.do {
$0.setImage(EATSSUAsset.Images.Version2.kakaoLoginButton.image, for: .normal)
}

logoImage.do {
$0.image = EATSSUAsset.Images.Version2.authLogo.image
}

logoSubTitleImage.do {
$0.image = EATSSUAsset.Images.Version2.authSubTitle.image
}

buttonStackView.do {
$0.spacing = 8
}

logoStackView.do {
$0.alignment = .center
}

loginPromptStackView.do {
$0.distribution = .equalSpacing
}

[buttonStackView,logoStackView,loginPromptStackView].forEach {
$0.axis = .vertical
}
}

override func configureUI() {
addSubview(loginPromptStackView)

logoStackView.addArrangedSubviews([logoImage,
logoSubTitleImage])
buttonStackView.addArrangedSubviews([appleLoginButton,
kakaoLoginButton])
loginPromptStackView.addArrangedSubviews([loginAlertLabel,
logoStackView,
buttonStackView])

// loginPromptStackView.backgroundColor = .yellow
// logoStackView.backgroundColor = .gray
// buttonStackView.backgroundColor = .green
// logoImage.backgroundColor = .blue
// logoSubTitleImage.backgroundColor = .red

}

override func setLayout() {
loginAlertLabel.snp.makeConstraints {
$0.top.equalToSuperview()
}

logoImage.snp.makeConstraints {
$0.horizontalEdges.equalToSuperview().inset(100)
$0.height.equalTo(46)
}

logoSubTitleImage.snp.makeConstraints {
$0.width.equalTo(70)
$0.height.equalTo(10)
}

loginPromptStackView.snp.makeConstraints {
$0.horizontalEdges.equalToSuperview().inset(30)
$0.height.equalToSuperview().multipliedBy(0.75)
$0.bottom.equalToSuperview().multipliedBy(0.85)
}
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ final class LoginPromptViewController: BaseViewController {

// MARK: - UI Components

private let loginPromptView = ios16LoginPromptView()
private let loginPromptView = ios15LoginPromptView()

// MARK: - Functions

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,20 +112,29 @@ final class HomeViewController: BaseViewController {
loginPromptVC.modalPresentationStyle = .pageSheet

// Check if iOS 16+
if #available(iOS 16.0, *) {
if let sheet = loginPromptVC.sheetPresentationController {
let small = UISheetPresentationController.Detent.Identifier("small")
sheet.detents = [
.custom(identifier: small) { context in
0.34 * context.maximumDetentValue
}
]

sheet.prefersScrollingExpandsWhenScrolledToEdge = false
sheet.preferredCornerRadius = 30
}
present(loginPromptVC, animated: true, completion: nil)
// if #available(iOS 16.0, *) {
// if let sheet = loginPromptVC.sheetPresentationController {
// let small = UISheetPresentationController.Detent.Identifier("small")
// sheet.detents = [
// .custom(identifier: small) { context in
// 0.34 * context.maximumDetentValue
// }
// ]
//
// sheet.prefersScrollingExpandsWhenScrolledToEdge = false
// sheet.preferredCornerRadius = 30
// }
// present(loginPromptVC, animated: true, completion: nil)
// }

if let sheet = loginPromptVC.sheetPresentationController {
sheet.detents = [.medium()]

sheet.prefersScrollingExpandsWhenScrolledToEdge = false
sheet.preferredCornerRadius = 30
}
present(loginPromptVC, animated: true, completion: nil)


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

0 comments on commit 1b7e47b

Please sign in to comment.