From f3576439bacc163c1435974fb2837945615c60e0 Mon Sep 17 00:00:00 2001 From: dlwogus0128 <79050615+dlwogus0128@users.noreply.github.com> Date: Mon, 15 May 2023 19:27:01 +0900 Subject: [PATCH 1/7] =?UTF-8?q?[Feat]=20#141=20-=20=EB=8B=89=EB=84=A4?= =?UTF-8?q?=EC=9E=84=20=EB=B3=80=EA=B2=BD=20=ED=8E=98=EC=9D=B4=EC=A7=80:?= =?UTF-8?q?=20=EB=B9=88=EC=B9=B8=20=ED=84=B0=EC=B9=98=20=EC=8B=9C=20dismis?= =?UTF-8?q?s=20=EB=90=98=EB=8A=94=20=EB=B6=80=EB=B6=84=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Presentation/MyPage/VC/NicknameEditorVC.swift | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/NicknameEditorVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/NicknameEditorVC.swift index ed576874..2834ad0b 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/NicknameEditorVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/NicknameEditorVC.swift @@ -57,7 +57,8 @@ final class NicknameEditorVC: UIViewController { $0.font = .h4 $0.textColor = .m1 let tap = UITapGestureRecognizer(target: self, action: #selector(finishNickNameLabelDidTap)) - self.view.addGestureRecognizer(tap) + $0.isUserInteractionEnabled = true + $0.addGestureRecognizer(tap) } // MARK: - View Life Cycle @@ -75,7 +76,7 @@ final class NicknameEditorVC: UIViewController { // MARK: - Method -extension NicknameEditorVC { +extension NicknameEditorVC { private func setAddTarget() { nickNameTextField.addTarget(self, action: #selector(textFieldTextDidChange), for: .editingChanged) } From 3196cb5ed37e6ec0078410cdead0b0ebb45d54be Mon Sep 17 00:00:00 2001 From: dlwogus0128 <79050615+dlwogus0128@users.noreply.github.com> Date: Mon, 15 May 2023 19:42:47 +0900 Subject: [PATCH 2/7] =?UTF-8?q?[Feat]=20#141=20-=20=EB=8B=89=EB=84=A4?= =?UTF-8?q?=EC=9E=84=20=EB=B3=80=EA=B2=BD=20=ED=8E=98=EC=9D=B4=EC=A7=80,?= =?UTF-8?q?=20=EA=B8=B0=EB=A1=9D=20=EC=88=98=EC=A0=95=20=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80:=20=ED=82=A4=EB=B3=B4=EB=93=9C=20=EC=97=94=ED=84=B0?= =?UTF-8?q?=20=EC=8B=9C=20=EC=84=9C=EB=B2=84=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../VC/InfoVC/ActivityRecordDetailVC.swift | 26 ++++++++++++++++++- .../MyPage/VC/NicknameEditorVC.swift | 11 ++++---- 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordDetailVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordDetailVC.swift index 8668738d..62913550 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordDetailVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordDetailVC.swift @@ -26,6 +26,7 @@ final class ActivityRecordDetailVC: UIViewController { // MARK: - UI Components private lazy var navibar = CustomNavigationBar(self, type: .titleWithLeftButton) + private lazy var editNavibar = CustomNavigationBar(self, type: .editModeForTitleWithLeftButton) private let moreButton = UIButton(type: .system).then { $0.setImage(ImageLiterals.icMore, for: .normal) @@ -45,6 +46,7 @@ final class ActivityRecordDetailVC: UIViewController { } private let courseTitleTextField = UITextField().then { + $0.resignFirstResponder() $0.attributedPlaceholder = NSAttributedString( string: "글 제목", attributes: [.font: UIFont.h4, .foregroundColor: UIColor.g3] @@ -110,6 +112,7 @@ final class ActivityRecordDetailVC: UIViewController { override func viewDidLoad() { super.viewDidLoad() + courseTitleTextField.delegate = self hideTabBar(wantsToHide: true) setNavigationBar() setUI() @@ -183,6 +186,16 @@ extension ActivityRecordDetailVC { @objc private func finishEditButtonDidTap() { editRecordTitle() + showToast(message: "제목 수정이 완료되었어요") + + self.editNavibar.isHidden = true + self.navibar.isHidden = false + + middleScorollView.snp.makeConstraints { make in + make.top.equalTo(navibar.snp.bottom) + make.leading.trailing.equalTo(view.safeAreaLayoutGuide) + make.bottom.equalTo(view.safeAreaLayoutGuide) + } } } @@ -282,6 +295,17 @@ extension ActivityRecordDetailVC { } } +// MARK: - UITextFieldDelegate + +extension ActivityRecordDetailVC: UITextFieldDelegate { + func textFieldShouldReturn(_ textField: UITextField) -> Bool { + if textField == self.courseTitleTextField { + self.finishEditButtonDidTap() + } + return true + } +} + // MARK: - Layout Helpers extension ActivityRecordDetailVC { @@ -389,7 +413,7 @@ extension ActivityRecordDetailVC { private func setEditMode() { self.navibar.isHidden = true - let editNavibar = CustomNavigationBar(self, type: .editModeForTitleWithLeftButton) + view.addSubview(editNavibar) diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/NicknameEditorVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/NicknameEditorVC.swift index 2834ad0b..840f6bb0 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/NicknameEditorVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/NicknameEditorVC.swift @@ -56,7 +56,7 @@ final class NicknameEditorVC: UIViewController { $0.text = "완료" $0.font = .h4 $0.textColor = .m1 - let tap = UITapGestureRecognizer(target: self, action: #selector(finishNickNameLabelDidTap)) + let tap = UITapGestureRecognizer(target: self, action: #selector(finishEditNickname)) $0.isUserInteractionEnabled = true $0.addGestureRecognizer(tap) } @@ -116,16 +116,15 @@ extension NicknameEditorVC { } } - @objc private func finishNickNameLabelDidTap() { + @objc private func finishEditNickname() { didNicknameReturn() self.navigationController?.popViewController(animated: false) } } +// MARK: - Layout Helpers + extension NicknameEditorVC { - - // MARK: - Layout Helpers - private func setUI() { view.backgroundColor = .w1 } @@ -169,7 +168,7 @@ extension NicknameEditorVC { extension NicknameEditorVC: UITextFieldDelegate { func textFieldShouldReturn(_ textField: UITextField) -> Bool { if textField == self.nickNameTextField { - didNicknameReturn() + finishEditNickname() } return true } From f3aee752e9529376f2b6e271ff74d4339bbfbcd2 Mon Sep 17 00:00:00 2001 From: dlwogus0128 <79050615+dlwogus0128@users.noreply.github.com> Date: Tue, 16 May 2023 00:35:20 +0900 Subject: [PATCH 3/7] =?UTF-8?q?[Feat]=20#141=20-=20=EA=B3=84=EC=A0=95=20?= =?UTF-8?q?=EC=A0=95=EB=B3=B4:=20=EC=9D=B4=EB=A9=94=EC=9D=BC=20=EB=9D=84?= =?UTF-8?q?=EC=9A=B0=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Runnect-iOS/Network/Dto/MyPageDto/MyPageDto.swift | 1 + .../Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift | 6 +++++- .../Presentation/MyPage/VC/SettingVC/PersonalInfoVC.swift | 8 +++++--- .../Presentation/MyPage/VC/SettingVC/SettingVC.swift | 8 +++++++- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/Runnect-iOS/Runnect-iOS/Network/Dto/MyPageDto/MyPageDto.swift b/Runnect-iOS/Runnect-iOS/Network/Dto/MyPageDto/MyPageDto.swift index 3cb1bd22..a9ab2237 100644 --- a/Runnect-iOS/Runnect-iOS/Network/Dto/MyPageDto/MyPageDto.swift +++ b/Runnect-iOS/Runnect-iOS/Network/Dto/MyPageDto/MyPageDto.swift @@ -16,6 +16,7 @@ struct MyPageDto: Codable { // MARK: - User struct User: Codable { + let email: String let nickname, latestStamp: String let level, levelPercent: Int } diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift index a3026c5f..ad3abeaa 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift @@ -12,13 +12,15 @@ import Then import Moya final class MyPageVC: UIViewController { - + // MARK: - Properties private var userProvider = Providers.userProvider let stampNameImageDictionary: [String: UIImage] = GoalRewardInfoModel.stampNameImageDictionary + var sendEmail = String() + // MARK: - UI Components private lazy var navibar = CustomNavigationBar(self, type: .title).setTitle("마이페이지") @@ -182,10 +184,12 @@ extension MyPageVC { private func pushToSettingVC() { let settingVC = SettingVC() + settingVC.setData(email: sendEmail) self.navigationController?.pushViewController(settingVC, animated: true) } private func setData(model: MyPageDto) { + self.sendEmail = model.user.email self.myProfileNameLabel.text = model.user.nickname self.myRunningProgressBar.setProgress(Float(model.user.levelPercent)/100, animated: false) setMyRunningProgressPercentLabel(label: myRunnigProgressPercentLabel, model: model) diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/SettingVC/PersonalInfoVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/SettingVC/PersonalInfoVC.swift index 85066225..1510130a 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/SettingVC/PersonalInfoVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/SettingVC/PersonalInfoVC.swift @@ -12,11 +12,13 @@ import SnapKit import Then final class PersonalInfoVC: UIViewController { - + // MARK: - Properties private let userProvider = Providers.userProvider + var email = String() + // MARK: - UI Components private lazy var navibar = CustomNavigationBar(self, type: .titleWithLeftButton).setTitle("계정 정보") @@ -32,10 +34,10 @@ final class PersonalInfoVC: UIViewController { $0.text = "아이디" } - private let idEmailInfoLabel = UILabel().then { + private lazy var idEmailInfoLabel = UILabel().then { $0.font = .b2 $0.textColor = .g2 - $0.text = "dlwogus0128@ajou.ac.kr" + $0.text = self.email } private lazy var logoutView = makeInfoView(title: "로그아웃").then { diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/SettingVC/SettingVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/SettingVC/SettingVC.swift index 29e3017f..5aa478e6 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/SettingVC/SettingVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/SettingVC/SettingVC.swift @@ -12,6 +12,8 @@ import Then import SafariServices final class SettingVC: UIViewController { + + private var email = String() // MARK: - UI Components @@ -46,12 +48,15 @@ final class SettingVC: UIViewController { setUI() setLayout() } - } // MARK: - Methods extension SettingVC { + func setData(email: String) { + self.email = email + } + private func makeInfoView(title: String) -> UIView { let containerView = UIView() @@ -82,6 +87,7 @@ extension SettingVC { private func pushToPersonalInfoVC() { let personalInfoVC = PersonalInfoVC() + personalInfoVC.email = self.email self.navigationController?.pushViewController(personalInfoVC, animated: true) } From 7be85f20df3110696db6796c360f6ca974fdb7c5 Mon Sep 17 00:00:00 2001 From: dlwogus0128 <79050615+dlwogus0128@users.noreply.github.com> Date: Tue, 16 May 2023 10:39:51 +0900 Subject: [PATCH 4/7] =?UTF-8?q?[Feat]=20#141=20-=20=EB=B6=88=EB=B6=84?= =?UTF-8?q?=EB=AA=85=ED=95=9C=20VC=20=EC=9D=B4=EB=A6=84=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../VC/InfoVC/ActivityRecordDetailVC.swift | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordDetailVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordDetailVC.swift index 62913550..8f4a8949 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordDetailVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordDetailVC.swift @@ -133,17 +133,17 @@ extension ActivityRecordDetailVC { self.isEditMode = true self.setEditMode() }) - let deleteVC = RNAlertVC(description: "러닝 기록을 정말로 삭제하시겠어요?").setButtonTitle("취소", "삭제하기") - deleteVC.modalPresentationStyle = .overFullScreen - let deleteAction = UIAlertAction(title: "삭제하기", style: .destructive, handler: {(_: UIAlertAction!) in - self.present(deleteVC, animated: false, completion: nil)}) + let deleteAlertVC = RNAlertVC(description: "러닝 기록을 정말로 삭제하시겠어요?").setButtonTitle("취소", "삭제하기") + deleteAlertVC.modalPresentationStyle = .overFullScreen + let deleteAlertAction = UIAlertAction(title: "삭제하기", style: .destructive, handler: {(_: UIAlertAction!) in + self.present(deleteAlertVC, animated: false, completion: nil)}) - deleteVC.rightButtonTapAction = { [weak self] in - deleteVC.dismiss(animated: false) + deleteAlertVC.rightButtonTapAction = { [weak self] in + deleteAlertVC.dismiss(animated: false) self?.deleteRecord() } - [ editAction, deleteAction ].forEach { alertController.addAction($0) } + [ editAction, deleteAlertAction ].forEach { alertController.addAction($0) } present(alertController, animated: true, completion: nil) } @@ -412,9 +412,7 @@ extension ActivityRecordDetailVC { private func setEditMode() { self.navibar.isHidden = true - - - + view.addSubview(editNavibar) editNavibar.snp.makeConstraints { make in From 9500dfe98518c2ffe37976d2572702bad6757956 Mon Sep 17 00:00:00 2001 From: dlwogus0128 <79050615+dlwogus0128@users.noreply.github.com> Date: Tue, 16 May 2023 11:14:44 +0900 Subject: [PATCH 5/7] =?UTF-8?q?[Fix]=20#141=20-=20=EB=9F=AC=EB=8B=9D?= =?UTF-8?q?=EA=B8=B0=EB=A1=9D=20=EB=94=94=ED=85=8C=EC=9D=BC=EB=B7=B0=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EC=8B=9C=20=ED=8C=9D=EC=97=85=20=ED=81=B4?= =?UTF-8?q?=EB=A1=9C=EC=A0=80=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UIComponents/CustomNavigationBar.swift | 30 +---------- .../VC/InfoVC/ActivityRecordDetailVC.swift | 50 +++++++++++-------- 2 files changed, 31 insertions(+), 49 deletions(-) diff --git a/Runnect-iOS/Runnect-iOS/Global/UIComponents/CustomNavigationBar.swift b/Runnect-iOS/Runnect-iOS/Global/UIComponents/CustomNavigationBar.swift index 100f3964..2608b3b9 100644 --- a/Runnect-iOS/Runnect-iOS/Global/UIComponents/CustomNavigationBar.swift +++ b/Runnect-iOS/Runnect-iOS/Global/UIComponents/CustomNavigationBar.swift @@ -20,7 +20,6 @@ enum NaviType { case titleWithLeftButton // 뒤로가기 버튼 + 중앙 타이틀 case search // 검색창 case report // 신고 - case editModeForTitleWithLeftButton // 수정하기 페이지일 때 } final class CustomNavigationBar: UIView { @@ -38,7 +37,7 @@ final class CustomNavigationBar: UIView { private let leftTitleLabel = UILabel() private let centerTitleLabel = UILabel() - private let leftButton = UIButton() + let leftButton = UIButton() private let rightButton = UIButton() private let reportButton = UIButton() private let textField = UITextField() @@ -72,14 +71,7 @@ extension CustomNavigationBar { private func setAddTarget(_ type: NaviType) { self.naviType = type - - switch type { - case .editModeForTitleWithLeftButton: - self.leftButton.addTarget(self, action: #selector(presentToQuitEditAlertVC), for: .touchUpInside) - default: - self.leftButton.addTarget(self, action: #selector(popToPreviousVC), for: .touchUpInside) - } - + self.leftButton.addTarget(self, action: #selector(popToPreviousVC), for: .touchUpInside) self.rightButton.addTarget(self, action: #selector(searchLocation), for: .touchUpInside) self.reportButton.addTarget(self, action: #selector(reportLocation), for: .touchUpInside) } @@ -181,19 +173,6 @@ extension CustomNavigationBar { } } - @objc private func presentToQuitEditAlertVC() { - guard let vc = vc else { return } - let quitEditAlertVC = RNAlertVC(description: "러닝 기록 수정을 종료할까요?\n종료 시 수정 내용이 반영되지 않아요.") - - quitEditAlertVC.rightButtonTapAction = { [weak self] in - quitEditAlertVC.dismiss(animated: false) - vc.navigationController?.popViewController(animated: true) - } - - quitEditAlertVC.modalPresentationStyle = .overFullScreen - self.vc?.present(quitEditAlertVC, animated: false, completion: nil) - } - @objc private func searchLocation() { guard let text = textField.text else { return } self.hideKeyboard() @@ -202,7 +181,6 @@ extension CustomNavigationBar { @objc private func reportLocation() { self.reportButtonClosure?() - } @objc private func rightButtonDidTap() { @@ -242,8 +220,6 @@ extension CustomNavigationBar { case .report: reportButton.setImage(ImageLiterals.icArrowBack, for: .normal) reportButton.isHidden = false - case .editModeForTitleWithLeftButton: - setTitleWithLeftButton() } } @@ -266,8 +242,6 @@ extension CustomNavigationBar { setSearchLayout() case .report: setReportButtonLayout() - case .editModeForTitleWithLeftButton: - setTitleWithLeftButtonLayout() } } diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordDetailVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordDetailVC.swift index 8f4a8949..00838928 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordDetailVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordDetailVC.swift @@ -18,15 +18,12 @@ final class ActivityRecordDetailVC: UIViewController { private let recordProvider = Providers.recordProvider private var recordId: Int? - - private var isEditMode: Bool = false - + private let courseTitleMaxLength = 20 // MARK: - UI Components private lazy var navibar = CustomNavigationBar(self, type: .titleWithLeftButton) - private lazy var editNavibar = CustomNavigationBar(self, type: .editModeForTitleWithLeftButton) private let moreButton = UIButton(type: .system).then { $0.setImage(ImageLiterals.icMore, for: .normal) @@ -118,6 +115,7 @@ final class ActivityRecordDetailVC: UIViewController { setUI() setLayout() setAddTarget() + self.view = view self.setKeyboardNotification() self.setTapGesture() } @@ -130,7 +128,6 @@ extension ActivityRecordDetailVC { let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet) let editAction = UIAlertAction(title: "수정하기", style: .default, handler: {(_: UIAlertAction!) in // 수정 모드일 때 - self.isEditMode = true self.setEditMode() }) let deleteAlertVC = RNAlertVC(description: "러닝 기록을 정말로 삭제하시겠어요?").setButtonTitle("취소", "삭제하기") @@ -154,8 +151,12 @@ extension ActivityRecordDetailVC { if text == self.courseTitleLabel.text { self.finishEditButton.isEnabled = false + } else { + // 수정이 된 상태라면 팝업을 띄워주기 + self.navibar.resetLeftButtonAction({ [weak self] in + self?.navibar.leftButton.addTarget(self, action: #selector(self?.presentToQuitEditAlertVC), for: .touchUpInside) + }, .titleWithLeftButton) } - if text.count > courseTitleMaxLength { let index = text.index(text.startIndex, offsetBy: courseTitleMaxLength) let newString = text[text.startIndex.. Date: Tue, 16 May 2023 11:43:27 +0900 Subject: [PATCH 6/7] =?UTF-8?q?[Fix]=20#141=20-=20=EB=B0=98=EB=B3=B5?= =?UTF-8?q?=EB=90=98=EB=8A=94=20=EC=BD=94=EB=93=9C=20=ED=95=A8=EC=88=98?= =?UTF-8?q?=EB=A1=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Runnect-iOS.xcodeproj/project.pbxproj | 4 ++ .../VC/InfoVC/ActivityRecordDetailVC.swift | 26 +++--------- .../ActivityRecordInfoTVC.swift | 37 +++++------------ .../MyPage/VC/InfoVC/InfoView.swift | 27 +++++++++++++ .../MyPage/VC/InfoVC/SetInfoLayout.swift | 40 +++++++++++++++++++ 5 files changed, 88 insertions(+), 46 deletions(-) create mode 100644 Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/InfoView.swift create mode 100644 Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/SetInfoLayout.swift diff --git a/Runnect-iOS/Runnect-iOS.xcodeproj/project.pbxproj b/Runnect-iOS/Runnect-iOS.xcodeproj/project.pbxproj index 2f5ace6c..19e71b4c 100644 --- a/Runnect-iOS/Runnect-iOS.xcodeproj/project.pbxproj +++ b/Runnect-iOS/Runnect-iOS.xcodeproj/project.pbxproj @@ -22,6 +22,7 @@ A3C2CAD329E4F77C00EC525B /* TermsOfServiceVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3C2CAD229E4F77C00EC525B /* TermsOfServiceVC.swift */; }; A3C2CAD529E4F85400EC525B /* PersonalInfoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3C2CAD429E4F85400EC525B /* PersonalInfoVC.swift */; }; A3C2CAD729E53B2900EC525B /* RNAlertVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3C2CAD629E53B2900EC525B /* RNAlertVC.swift */; }; + A3C38FED2A13212300FF196D /* SetInfoLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3C38FEC2A13212300FF196D /* SetInfoLayout.swift */; }; A3D1A77929CF03D200DD54EC /* AuthRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D1A77829CF03D200DD54EC /* AuthRouter.swift */; }; A3D1A77E29CF09B600DD54EC /* SignInResponseDto.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D1A77D29CF09B600DD54EC /* SignInResponseDto.swift */; }; A3D1A78029CF142E00DD54EC /* UserManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3D1A77F29CF142E00DD54EC /* UserManager.swift */; }; @@ -175,6 +176,7 @@ A3C2CAD229E4F77C00EC525B /* TermsOfServiceVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TermsOfServiceVC.swift; sourceTree = ""; }; A3C2CAD429E4F85400EC525B /* PersonalInfoVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersonalInfoVC.swift; sourceTree = ""; }; A3C2CAD629E53B2900EC525B /* RNAlertVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RNAlertVC.swift; sourceTree = ""; }; + A3C38FEC2A13212300FF196D /* SetInfoLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetInfoLayout.swift; sourceTree = ""; }; A3D1A77829CF03D200DD54EC /* AuthRouter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthRouter.swift; sourceTree = ""; }; A3D1A77D29CF09B600DD54EC /* SignInResponseDto.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignInResponseDto.swift; sourceTree = ""; }; A3D1A77F29CF142E00DD54EC /* UserManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserManager.swift; sourceTree = ""; }; @@ -363,6 +365,7 @@ A3BC2F2C2962C3F200198261 /* ActivityRecordInfoVC.swift */, A3BC2F2E2962C40A00198261 /* UploadedCourseInfoVC.swift */, A3DB8C462A0B64830081AF2D /* ActivityRecordDetailVC.swift */, + A3C38FEC2A13212300FF196D /* SetInfoLayout.swift */, ); path = InfoVC; sourceTree = ""; @@ -1396,6 +1399,7 @@ CE21C02C299E601000F62AF5 /* ScrapRouter.swift in Sources */, A3D1A78029CF142E00DD54EC /* UserManager.swift in Sources */, A3D1A77929CF03D200DD54EC /* AuthRouter.swift in Sources */, + A3C38FED2A13212300FF196D /* SetInfoLayout.swift in Sources */, CE6655D4295D865B00C64E12 /* Publisher+UIControl.swift in Sources */, CE0D9FD329648DA300CEB5CD /* CustomAlertVC.swift in Sources */, CEB841702963360800BF8080 /* CountDownVC.swift in Sources */, diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordDetailVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordDetailVC.swift index 00838928..078f07ff 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordDetailVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordDetailVC.swift @@ -67,23 +67,23 @@ final class ActivityRecordDetailVC: UIViewController { private let secondHorizontalDivideLine = UIView() - private lazy var recordDistanceLabel = setGreyTitle().then { + private lazy var recordDistanceLabel = SetInfoLayout.makeGreySmailTitleLabel().then { $0.text = "거리" } - private lazy var recordRunningTimeLabel = setGreyTitle().then { + private lazy var recordRunningTimeLabel = SetInfoLayout.makeGreySmailTitleLabel().then { $0.text = "이동 시간" } - private lazy var recordAveragePaceLabel = setGreyTitle().then { + private lazy var recordAveragePaceLabel = SetInfoLayout.makeGreySmailTitleLabel().then { $0.text = "평균 페이스" } - private lazy var recordDistanceValueLabel = setBlackTitle() + private lazy var recordDistanceValueLabel = SetInfoLayout.makeBlackTitleLabel() - private lazy var recordRunningTimeValueLabel = setBlackTitle() + private lazy var recordRunningTimeValueLabel = SetInfoLayout.makeBlackTitleLabel() - private lazy var recordAveragePaceValueLabel = setBlackTitle() + private lazy var recordAveragePaceValueLabel = SetInfoLayout.makeBlackTitleLabel() private lazy var recordDistanceStackView = setDetailInfoStakcView(title: recordDistanceLabel, value: recordDistanceValueLabel) @@ -275,20 +275,6 @@ extension ActivityRecordDetailVC { label.attributedText = attributedString } - private func setBlackTitle() -> UILabel { - let label = UILabel() - label.textColor = .g1 - label.font = .h3 - return label - } - - private func setGreyTitle() -> UILabel { - let label = UILabel() - label.textColor = .g2 - label.font = .b4 - return label - } - // 키보드가 올라오면 scrollView 위치 조정 private func setKeyboardNotification() { NotificationCenter.default.addObserver( diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordInfoTableView/ActivityRecordInfoTVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordInfoTableView/ActivityRecordInfoTVC.swift index 8e9083b9..a80ac33c 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordInfoTableView/ActivityRecordInfoTVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordInfoTableView/ActivityRecordInfoTVC.swift @@ -33,18 +33,17 @@ final class ActivityRecordInfoTVC: UITableViewCell { $0.clipsToBounds = true } - private lazy var activityRecordTitleLabel = setBlackTitle() - private lazy var activityRecordPlaceLabel = setGreyTitle() - - private lazy var activityRecordVirticalBarLabel = setGreyTitle().then { + private lazy var activityRecordTitleLabel = SetInfoLayout.makeBlackSmallTitleLabel() + private lazy var activityRecordPlaceLabel = SetInfoLayout.makeGreyTitleLabel() + private lazy var activityRecordVirticalBarLabel = SetInfoLayout.makeGreySmailTitleLabel().then { $0.text = "|" } - private lazy var activityRecordDateLabel = setGreyTitle() + private lazy var activityRecordDateLabel = SetInfoLayout.makeGreySmailTitleLabel() private lazy var activityRecordSubTitleStackView = UIStackView(arrangedSubviews: [activityRecordPlaceLabel, activityRecordVirticalBarLabel, activityRecordDateLabel]).then { $0.axis = .horizontal - $0.spacing = 4 + $0.spacing = 6 } private lazy var activityRecordMainInfoStackView = UIStackView(arrangedSubviews: [activityRecordTitleLabel, activityRecordSubTitleStackView]).then { @@ -53,19 +52,19 @@ final class ActivityRecordInfoTVC: UITableViewCell { $0.spacing = 7 } - private lazy var activityRecordTotalDistanceValueLabel = setBlackTitle() - private lazy var activityRecordRunningTimeValueLabel = setBlackTitle() - private lazy var activityRecordAveragePaceValueLabel = setBlackTitle() + private lazy var activityRecordTotalDistanceValueLabel = SetInfoLayout.makeBlackSmallTitleLabel() + private lazy var activityRecordRunningTimeValueLabel = SetInfoLayout.makeBlackSmallTitleLabel() + private lazy var activityRecordAveragePaceValueLabel = SetInfoLayout.makeBlackSmallTitleLabel() - private lazy var activityRecordTotalDistanceLabel = setGreyTitle().then { + private lazy var activityRecordTotalDistanceLabel = SetInfoLayout.makeGreySmailTitleLabel().then { $0.text = "총 거리" } - private lazy var activityRecordRunningTimeLabel = setGreyTitle().then { + private lazy var activityRecordRunningTimeLabel = SetInfoLayout.makeGreySmailTitleLabel().then { $0.text = "이동 시간" } - private lazy var activityRecordAveragePaceLabel = setGreyTitle().then { + private lazy var activityRecordAveragePaceLabel = SetInfoLayout.makeGreySmailTitleLabel().then { $0.text = "평균 페이스" } @@ -160,20 +159,6 @@ extension ActivityRecordInfoTVC { return stackView } - func setBlackTitle() -> UILabel { - let label = UILabel() - label.textColor = .g1 - label.font = .h5 - return label - } - - func setGreyTitle() -> UILabel { - let label = UILabel() - label.textColor = .g2 - label.font = .b8 - return label - } - func setLineDot(view: UIView) { let borderLayer = CAShapeLayer() borderLayer.strokeColor = UIColor.g4.cgColor diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/InfoView.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/InfoView.swift new file mode 100644 index 00000000..f89c3447 --- /dev/null +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/InfoView.swift @@ -0,0 +1,27 @@ +// +// InfoView.swift +// Runnect-iOS +// +// Created by 몽이 누나 on 2023/05/16. +// + +import UIKit + +import Then + +final class InfoView: UIView { + + // MARK: - initialization + + init() { + super.init(frame: .zero) + self.setUI() + self.setLayout() + self.setDelegate() + self.register() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/SetInfoLayout.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/SetInfoLayout.swift new file mode 100644 index 00000000..93b2740a --- /dev/null +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/SetInfoLayout.swift @@ -0,0 +1,40 @@ +// +// SetInfoLayout.swift +// Runnect-iOS +// +// Created by 몽이 누나 on 2023/05/16. +// + +import Foundation +import UIKit + +class SetInfoLayout { + static func makeBlackTitleLabel() -> UILabel { + let label = UILabel() + label.textColor = .g1 + label.font = .h3 + return label + } + + static func makeGreyTitleLabel() -> UILabel { + let label = UILabel() + label.textColor = .g2 + label.font = .b4 + return label + } + + static func makeBlackSmallTitleLabel() -> UILabel { + let label = UILabel() + label.textColor = .g1 + label.font = .h5 + return label + } + + static func makeGreySmailTitleLabel() -> UILabel { + let label = UILabel() + label.textColor = .g2 + label.font = .b8 + return label + } + +} From 8b621c56d85d84137324bda83c0606099ad07b54 Mon Sep 17 00:00:00 2001 From: dlwogus0128 <79050615+dlwogus0128@users.noreply.github.com> Date: Wed, 17 May 2023 12:52:00 +0900 Subject: [PATCH 7/7] =?UTF-8?q?[Fix]=20#141=20-=20=EC=BD=94=EB=93=9C?= =?UTF-8?q?=EB=A6=AC=EB=B7=B0=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../VC/InfoVC/ActivityRecordDetailVC.swift | 3 ++- .../VC/InfoVC/ActivityRecordInfoVC.swift | 4 +-- .../MyPage/VC/InfoVC/InfoView.swift | 27 ------------------- .../MyPage/VC/InfoVC/SetInfoLayout.swift | 1 - 4 files changed, 4 insertions(+), 31 deletions(-) delete mode 100644 Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/InfoView.swift diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordDetailVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordDetailVC.swift index 078f07ff..9f60cdd5 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordDetailVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordDetailVC.swift @@ -154,7 +154,8 @@ extension ActivityRecordDetailVC { } else { // 수정이 된 상태라면 팝업을 띄워주기 self.navibar.resetLeftButtonAction({ [weak self] in - self?.navibar.leftButton.addTarget(self, action: #selector(self?.presentToQuitEditAlertVC), for: .touchUpInside) + //self?.navibar.leftButton.addTarget(self, action: #selector(self?.presentToQuitEditAlertVC), for: .touchUpInside) + self?.presentToQuitEditAlertVC() }, .titleWithLeftButton) } if text.count > courseTitleMaxLength { diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordInfoVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordInfoVC.swift index bd2e8288..9dec64aa 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordInfoVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordInfoVC.swift @@ -73,7 +73,7 @@ final class ActivityRecordInfoVC: UIViewController, deleteRecordDelegate { setLayout() setAddTarget() setDelegate() - register() + registerCell() getActivityRecordInfo() self.hideTabBar(wantsToHide: true) } @@ -95,7 +95,7 @@ extension ActivityRecordInfoVC { self.emptyView.delegate = self } - private func register() { + private func registerCell() { self.activityRecordTableView.register(ActivityRecordInfoTVC.self, forCellReuseIdentifier: ActivityRecordInfoTVC.className) } diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/InfoView.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/InfoView.swift deleted file mode 100644 index f89c3447..00000000 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/InfoView.swift +++ /dev/null @@ -1,27 +0,0 @@ -// -// InfoView.swift -// Runnect-iOS -// -// Created by 몽이 누나 on 2023/05/16. -// - -import UIKit - -import Then - -final class InfoView: UIView { - - // MARK: - initialization - - init() { - super.init(frame: .zero) - self.setUI() - self.setLayout() - self.setDelegate() - self.register() - } - - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } -} diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/SetInfoLayout.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/SetInfoLayout.swift index 93b2740a..8aca9cf6 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/SetInfoLayout.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/SetInfoLayout.swift @@ -5,7 +5,6 @@ // Created by 몽이 누나 on 2023/05/16. // -import Foundation import UIKit class SetInfoLayout {