From eeb153f8f39ffa7c441581a0c7c4393e79d94a23 Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Thu, 1 Sep 2022 16:26:46 +0900 Subject: [PATCH 01/28] =?UTF-8?q?[FIX]=20=EB=A7=88=EC=9D=B4=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20=EC=82=AC=EC=A7=84=20=EC=97=86=EC=9D=84=20?= =?UTF-8?q?=EC=8B=9C=20=EB=B6=84=EA=B8=B0=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyPageViewController/MyPageViewController.swift | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/MyPageViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/MyPageViewController.swift index d998b39..b814da5 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/MyPageViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/MyPageViewController.swift @@ -291,9 +291,14 @@ extension MyPageViewController { switch response { case .success(let data): if let photos = data as? PhotosResponse { - self.serverNewPhotos = photos - self.userImageview.updateServerImage(photos.photos[0].userImageURL) - self.userNameLabel.text = photos.photos[0].nickname + // 마이페이지 사진 없을 시 분기처리 + if photos.photos.isEmpty == true { + self.userImageview.updateServerImage("icnCall") + self.userNameLabel.text = "수정해야damm~~" + } else { + self.userImageview.updateServerImage(photos.photos[0].userImageURL) + self.userNameLabel.text = photos.photos[0].nickname + } // /3을 하게 되면 1,2개일 때는 제대로 나오지 않기 때문에 소수점 올림 해주기 let photosCount = ceil(Double(photos.photos.count)/3) let intPhotosCount = Int(photosCount) From b30f82e64bec7103e9f49fc5174d25ba03f8a180 Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Thu, 1 Sep 2022 16:28:22 +0900 Subject: [PATCH 02/28] =?UTF-8?q?[ADD]=20=EC=95=BD=EA=B4=80=20=EB=B0=8F=20?= =?UTF-8?q?=EC=A0=95=EC=B1=85=20=EB=B7=B0=20=EC=95=84=EC=9D=B4=EC=BD=98=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../btnOpen.imageset/Contents.json | 23 ++++++++++++++++++ .../btnOpen.imageset/btn_open.png | Bin 0 -> 213 bytes .../btnOpen.imageset/btn_open@2x.png | Bin 0 -> 308 bytes .../btnOpen.imageset/btn_open@3x.png | Bin 0 -> 418 bytes 4 files changed, 23 insertions(+) create mode 100644 Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnOpen.imageset/Contents.json create mode 100644 Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnOpen.imageset/btn_open.png create mode 100644 Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnOpen.imageset/btn_open@2x.png create mode 100644 Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnOpen.imageset/btn_open@3x.png diff --git a/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnOpen.imageset/Contents.json b/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnOpen.imageset/Contents.json new file mode 100644 index 0000000..d45cef6 --- /dev/null +++ b/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnOpen.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "btn_open.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "btn_open@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "btn_open@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnOpen.imageset/btn_open.png b/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnOpen.imageset/btn_open.png new file mode 100644 index 0000000000000000000000000000000000000000..d815d830b9eaf94580485f9bf15f8e60a012e297 GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GG!XV7ZFl!D-1!HlL zyA#8@b22Z19F}xPUq=Rpjs4tz5?O)#EKe85kP61PmkhZMDDbdeh(CB&xq@Z=rODqk z?zT!*@vjWsRl+$XOYO55`@?zjFR;HeJE*M7(7{WWGu>;6>V7XVjtte( zkGH3OzE$hGhbf}_;XFavD{(!`9>(kt=B}Swv7++sled{H54ud9fwnSuy85}Sb4q9e E06>sN(*OVf literal 0 HcmV?d00001 diff --git a/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnOpen.imageset/btn_open@2x.png b/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnOpen.imageset/btn_open@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..63dab94d4d31f6f3db2d78c18063e2bf42fdfa33 GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC&H|6fVg?2=RS;(M3{v?36l5$8 za(7}_cTVOdki(Mh=Cz6ezMVjx~MhwrbW z@UO{5B_9tMdhLkMP52n{AwT2E@o7NkoM4pSoN>M8R?e=4Ku! z3WG@Jx27e@{}WsUZmU?=&iq-o!Qk_+jsD3X3xPmk+2;tp=Y=*B|AOXRj-L6&M)|AQ z5%;xsZLY86i<@Z0ouaee`Tke?M7_@+cHEX->$t+zu(oxJ7olIi3u4^8Himpn3=Pfqe!$$WCH$4lmuTRm8Q zeT!dWz`i+*|C;^Zd(W9=>|Z?EJ7xOH&Ce^>PnIqJ{da+7?Skw=mC^;#g(|rVR0~y7 z7c4DQiCth?s1mwhYoUto0^LFt*9B_}RcaPYvkgOGv2)78&qol`;+ E0EZu;4FCWD literal 0 HcmV?d00001 From 99932cb7eea9bfd0573cc35783beffc5659aee21 Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Thu, 1 Sep 2022 17:40:53 +0900 Subject: [PATCH 03/28] =?UTF-8?q?[ADD]=20=EC=95=BD=EA=B4=80=EB=B7=B0=20URL?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Fillin-iOS/Fillin-iOS/Resources/Constants/URL.swift | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Fillin-iOS/Fillin-iOS/Resources/Constants/URL.swift b/Fillin-iOS/Fillin-iOS/Resources/Constants/URL.swift index 8f37be0..3ecb640 100644 --- a/Fillin-iOS/Fillin-iOS/Resources/Constants/URL.swift +++ b/Fillin-iOS/Fillin-iOS/Resources/Constants/URL.swift @@ -7,7 +7,9 @@ import Foundation extension Const { - struct URL { - static let baseURL = "https://asia-northeast3-fill-in-13efb.cloudfunctions.net/app/api" - } + struct URL { + static let baseURL = "https://asia-northeast3-fill-in-13efb.cloudfunctions.net/app/api" + static let infoTermURL = "https://66jxndoe.notion.site/FILL-IN-ecc509304b824e7c93e23d7a15783f59" + static let useTermURL = "https://66jxndoe.notion.site/FILL-IN-a800e45762a44f4fbcf07569a42f4dac" + } } From c0df3d15a42ef72f0acc6d31b36283f08362d9fd Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Thu, 1 Sep 2022 17:41:22 +0900 Subject: [PATCH 04/28] =?UTF-8?q?[FEAT]=20=EC=9D=B4=EC=9A=A9=EC=95=BD?= =?UTF-8?q?=EA=B4=80=20=EB=B7=B0=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Constants/Assets+Generated.swift | 1 + .../TermTableViewCell.swift | 75 +++++++++++++ .../TermsViewController.swift | 105 ++++++++++++++++++ 3 files changed, 181 insertions(+) create mode 100644 Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/TermTableViewCell.swift create mode 100644 Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/TermsViewController.swift diff --git a/Fillin-iOS/Fillin-iOS/Resources/Constants/Assets+Generated.swift b/Fillin-iOS/Fillin-iOS/Resources/Constants/Assets+Generated.swift index 2e62f01..9ec32c5 100644 --- a/Fillin-iOS/Fillin-iOS/Resources/Constants/Assets+Generated.swift +++ b/Fillin-iOS/Fillin-iOS/Resources/Constants/Assets+Generated.swift @@ -31,6 +31,7 @@ internal enum Asset { internal static let btnLike = ImageAsset(name: "btnLike") internal static let btnLiked = ImageAsset(name: "btnLiked") internal static let btnMore = ImageAsset(name: "btnMore") + internal static let btnOpen = ImageAsset(name: "btnOpen") internal static let btnScrap = ImageAsset(name: "btnScrap") internal static let btnlogin = ImageAsset(name: "btnlogin") internal static let icnAddPhotoBig = ImageAsset(name: "icnAddPhotoBig") diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/TermTableViewCell.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/TermTableViewCell.swift new file mode 100644 index 0000000..c5fd0cb --- /dev/null +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/TermTableViewCell.swift @@ -0,0 +1,75 @@ +// +// TermTableViewCell.swift +// Fillin-iOS +// +// Created by 김지수 on 2022/09/01. +// + +import UIKit + +import SnapKit +import Then + +// MARK: - TermTableViewCell +class TermTableViewCell: UITableViewCell { + + static let identifier = "TermTableViewCell" + + // MARK: - Component + let termExplainLabel = UILabel() + let termmoveIcon = UIButton() + let divideLine = UIView() + + // MARK: - LifeCycle + override func awakeFromNib() { + super.awakeFromNib() + self.backgroundColor = .clear + layout() + setUI() + } + override func setSelected(_ selected: Bool, animated: Bool) { + super.setSelected(selected, animated: animated) + } +} +extension TermTableViewCell { + func layout() { + layoutTermExplainLabel() + layoutTermMoveIcon() + layoutDivideLine() + } + func layoutTermExplainLabel() { + self.contentView.add(termExplainLabel) { + $0.textColor = .white + $0.font = .body3 + $0.snp.makeConstraints { make in + make.centerY.equalToSuperview() + make.leading.equalToSuperview().offset(18) + } + } + } + func layoutTermMoveIcon() { + self.contentView.add(termmoveIcon) { + $0.setImage(UIImage(asset: Asset.btnOpen), for: .normal) + $0.snp.makeConstraints { make in + make.centerY.equalTo(self.termExplainLabel) + make.trailing.equalToSuperview().offset(-18) + make.height.equalTo(24) + make.width.equalTo(24) + } + } + } + func layoutDivideLine() { + self.contentView.add(divideLine) { + $0.backgroundColor = UIColor(red: 29.0 / 255.0, green: 29.0 / 255.0, blue: 29.0 / 255.0, alpha: 1.0) + $0.snp.makeConstraints { make in + make.top.equalTo(self.termExplainLabel.snp.bottom).offset(18) + make.centerX.equalToSuperview() + make.leading.equalToSuperview().offset(18) + make.height.equalTo(1) + } + } + } + func setUI() { + self.contentView.backgroundColor = .fillinBlack + } +} diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/TermsViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/TermsViewController.swift new file mode 100644 index 0000000..9f6857f --- /dev/null +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/TermsViewController.swift @@ -0,0 +1,105 @@ +// +// TermsViewController.swift +// Fillin-iOS +// +// Created by 김지수 on 2022/09/01. +// + +import UIKit + +import SnapKit +import Then + +// MARK: - TermsViewController +class TermsViewController: UIViewController { + + // MARK: - Components + let navigationBar = FilinNavigationBar() + let termTableView = UITableView() + let settingTitles = ["개인정보처리방침", "이용약관"] + + // MARK: - LifeCycle + override func viewDidLoad() { + super.viewDidLoad() + self.termTableView.delegate = self + self.termTableView.dataSource = self + register() + layout() + setUI() + } +} +extension TermsViewController { + func register() { + self.termTableView.register(TermTableViewCell.self, forCellReuseIdentifier: TermTableViewCell.identifier) + } + func layout() { + layoutNavigaionBar() + layoutTermTableView() + } + func layoutNavigaionBar() { + self.view.add(navigationBar) { + self.navigationBar.popViewController = { + self.navigationController?.popViewController(animated: true) + } + $0.snp.makeConstraints { make in + make.top.equalTo(self.view.safeAreaLayoutGuide.snp.top) + make.leading.trailing.equalToSuperview() + make.height.equalTo(50) + } + } + } + func layoutTermTableView() { + self.view.add(termTableView) { + $0.separatorStyle = .none + $0.snp.makeConstraints { make in + make.top.equalTo(self.navigationBar.snp.bottom) + make.leading.trailing.bottom.equalToSuperview() + } + } + } + func setUI() { + self.view.backgroundColor = .fillinBlack + self.navigationController?.navigationBar.isHidden = true + } + func openURL(link: URL) { + if UIApplication.shared.canOpenURL(link) { + UIApplication.shared.open(link, options: [:], completionHandler: nil) + } + } +} +// MARK: - TableViewDataSource +extension TermsViewController: UITableViewDataSource { + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return 1 + } + + func numberOfSections(in tableView: UITableView) -> Int { + return 2 + } + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + guard let termCell = tableView.dequeueReusableCell(withIdentifier: TermTableViewCell.identifier, for: indexPath) as? TermTableViewCell else {return UITableViewCell() } + termCell.backgroundColor = .clear + termCell.selectionStyle = . none + termCell.termExplainLabel.text = settingTitles[indexPath.section] + termCell.termExplainLabel.textColor = .fillinWhite + termCell.awakeFromNib() + + return termCell + + } + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + switch indexPath.section { + case 0: + openURL(link: URL(string: Const.URL.infoTermURL)!) + case 1: + openURL(link: URL(string: Const.URL.useTermURL)!) + default: print("default!") + } + } +} +// MARK: - TableViewDelegate +extension TermsViewController: UITableViewDelegate { + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { + return UIScreen.main.bounds.size.height * (50/812) + } +} From 109b1452c50454352f2f20d14579a013625618e0 Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Thu, 1 Sep 2022 17:43:47 +0900 Subject: [PATCH 05/28] =?UTF-8?q?[FEAT]=20=EC=9D=B4=EC=9A=A9=EC=95=BD?= =?UTF-8?q?=EA=B4=80=20=EB=B7=B0=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Fillin-iOS/Fillin-iOS.xcodeproj/project.pbxproj | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Fillin-iOS/Fillin-iOS.xcodeproj/project.pbxproj b/Fillin-iOS/Fillin-iOS.xcodeproj/project.pbxproj index 9352a15..3dfe86a 100644 --- a/Fillin-iOS/Fillin-iOS.xcodeproj/project.pbxproj +++ b/Fillin-iOS/Fillin-iOS.xcodeproj/project.pbxproj @@ -121,6 +121,8 @@ E89934F727CD1EDE00DCB1A8 /* OnboardingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E89934F627CD1EDE00DCB1A8 /* OnboardingViewController.swift */; }; E89934FA27CD2AA600DCB1A8 /* OnboardingDataModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E89934F927CD2AA600DCB1A8 /* OnboardingDataModel.swift */; }; E89934FD27CD2BCB00DCB1A8 /* OnboardingCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E89934FC27CD2BCB00DCB1A8 /* OnboardingCollectionViewCell.swift */; }; + E8EB7A5628C090AB0091DA22 /* TermsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8EB7A5528C090AB0091DA22 /* TermsViewController.swift */; }; + E8EB7A5828C093080091DA22 /* TermTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8EB7A5728C093080091DA22 /* TermTableViewCell.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -242,6 +244,8 @@ E89934F627CD1EDE00DCB1A8 /* OnboardingViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingViewController.swift; sourceTree = ""; }; E89934F927CD2AA600DCB1A8 /* OnboardingDataModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingDataModel.swift; sourceTree = ""; }; E89934FC27CD2BCB00DCB1A8 /* OnboardingCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingCollectionViewCell.swift; sourceTree = ""; }; + E8EB7A5528C090AB0091DA22 /* TermsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TermsViewController.swift; sourceTree = ""; }; + E8EB7A5728C093080091DA22 /* TermTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TermTableViewCell.swift; sourceTree = ""; }; F33300C623DFF466AFCE2914 /* Pods_Fillin_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Fillin_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -523,6 +527,8 @@ 6F3B872927968AEB00A4BD07 /* MyPagePhotoCollectionViewCell.swift */, 6F3B872A27968AEB00A4BD07 /* MyPageViewController.xib */, 6F3B872B27968AEB00A4BD07 /* MyPageViewController.swift */, + E8EB7A5528C090AB0091DA22 /* TermsViewController.swift */, + E8EB7A5728C093080091DA22 /* TermTableViewCell.swift */, ); path = MyPageViewController; sourceTree = ""; @@ -1025,6 +1031,7 @@ 6F3B878927968AEB00A4BD07 /* GenericResponse.swift in Sources */, 77EB42212797D17600C726D8 /* FlimSelectAPI.swift in Sources */, 6F3B879627968AEB00A4BD07 /* FilmRollService.swift in Sources */, + E8EB7A5628C090AB0091DA22 /* TermsViewController.swift in Sources */, 6F3B87CD27968AEB00A4BD07 /* FillinNavigationBar.swift in Sources */, 6F3B87C527968AEB00A4BD07 /* ArrowCollectionViewCell.swift in Sources */, 6F8B71F92796F33A00F88EB3 /* StudioResponse.swift in Sources */, @@ -1083,6 +1090,7 @@ 6F3B877827968AEB00A4BD07 /* UIFont+Extension.swift in Sources */, 6F3B878F27968AEB00A4BD07 /* MyPageService.swift in Sources */, 6F3B879927968AEB00A4BD07 /* StudioMapSearchTableViewCell.swift in Sources */, + E8EB7A5828C093080091DA22 /* TermTableViewCell.swift in Sources */, 6F3B87B627968AEB00A4BD07 /* FilmCurationCollectionViewCell.swift in Sources */, 6F3B879427968AEB00A4BD07 /* StudioMapService.swift in Sources */, 6F3B87AC27968AEB00A4BD07 /* FilmRollClickViewController.swift in Sources */, From 80e68e6bd16ffc505d7d5fdd836179dadaa2b4a1 Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Wed, 7 Sep 2022 14:18:29 +0900 Subject: [PATCH 06/28] =?UTF-8?q?[ADD]=20#134=20-=20ReportVC,=20ReportDeta?= =?UTF-8?q?ilVC=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Fillin-iOS.xcodeproj/project.pbxproj | 16 ++++++++++ .../Resources/Constants/Header.swift | 20 ++++++------- .../NetworkService/User/UserService.swift | 3 +- .../HomeViewController.swift | 3 +- .../ReportDetailViewController.swift | 29 +++++++++++++++++++ .../ReportViewController.swift | 29 +++++++++++++++++++ 6 files changed, 88 insertions(+), 12 deletions(-) create mode 100644 Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportDetailViewController.swift create mode 100644 Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift diff --git a/Fillin-iOS/Fillin-iOS.xcodeproj/project.pbxproj b/Fillin-iOS/Fillin-iOS.xcodeproj/project.pbxproj index 3dfe86a..6311c67 100644 --- a/Fillin-iOS/Fillin-iOS.xcodeproj/project.pbxproj +++ b/Fillin-iOS/Fillin-iOS.xcodeproj/project.pbxproj @@ -116,6 +116,8 @@ 77EB42232797D1CE00C726D8 /* FilmSelectService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77EB42222797D1CE00C726D8 /* FilmSelectService.swift */; }; 77EB42262797DAFD00C726D8 /* FilmResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77EB42252797DAFD00C726D8 /* FilmResponse.swift */; }; 9ADF3537C1D51ED22F4C921B /* Pods_Fillin_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F33300C623DFF466AFCE2914 /* Pods_Fillin_iOS.framework */; }; + E822163528C860CC0090CEC5 /* ReportViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E822163428C860CC0090CEC5 /* ReportViewController.swift */; }; + E822163728C860E10090CEC5 /* ReportDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E822163628C860E10090CEC5 /* ReportDetailViewController.swift */; }; E828BF9127991C14009C1475 /* Status.swift in Sources */ = {isa = PBXBuildFile; fileRef = E828BF9027991C14009C1475 /* Status.swift */; }; E86731CB279728EE00FCD0EE /* UIViewController+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = E86731CA279728EE00FCD0EE /* UIViewController+Extension.swift */; }; E89934F727CD1EDE00DCB1A8 /* OnboardingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E89934F627CD1EDE00DCB1A8 /* OnboardingViewController.swift */; }; @@ -239,6 +241,8 @@ 77EB42222797D1CE00C726D8 /* FilmSelectService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilmSelectService.swift; sourceTree = ""; }; 77EB42252797DAFD00C726D8 /* FilmResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilmResponse.swift; sourceTree = ""; }; 864A552B88FE473B50DE4171 /* Pods-Fillin-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Fillin-iOS.debug.xcconfig"; path = "Target Support Files/Pods-Fillin-iOS/Pods-Fillin-iOS.debug.xcconfig"; sourceTree = ""; }; + E822163428C860CC0090CEC5 /* ReportViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportViewController.swift; sourceTree = ""; }; + E822163628C860E10090CEC5 /* ReportDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportDetailViewController.swift; sourceTree = ""; }; E828BF9027991C14009C1475 /* Status.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Status.swift; sourceTree = ""; }; E86731CA279728EE00FCD0EE /* UIViewController+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIViewController+Extension.swift"; sourceTree = ""; }; E89934F627CD1EDE00DCB1A8 /* OnboardingViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingViewController.swift; sourceTree = ""; }; @@ -474,6 +478,7 @@ 6F3B871B27968AEB00A4BD07 /* ViewControllers */ = { isa = PBXGroup; children = ( + E822163328C860AD0090CEC5 /* ReportViewController */, 6F3B872527968AEB00A4BD07 /* SplashViewController */, 6F3B872127968AEB00A4BD07 /* OnboardingViewController */, 6F3B876627968AEB00A4BD07 /* LoginViewController */, @@ -828,6 +833,15 @@ path = DataModel; sourceTree = ""; }; + E822163328C860AD0090CEC5 /* ReportViewController */ = { + isa = PBXGroup; + children = ( + E822163428C860CC0090CEC5 /* ReportViewController.swift */, + E822163628C860E10090CEC5 /* ReportDetailViewController.swift */, + ); + path = ReportViewController; + sourceTree = ""; + }; E89934F827CD2A9C00DCB1A8 /* DataModel */ = { isa = PBXGroup; children = ( @@ -1057,6 +1071,7 @@ 6F3B879227968AEB00A4BD07 /* AddPhotoService.swift in Sources */, 6F3B87A127968AEB00A4BD07 /* MyPagePhotoCollectionViewCell.swift in Sources */, 6F3B878B27968AEB00A4BD07 /* HomeAPI.swift in Sources */, + E822163728C860E10090CEC5 /* ReportDetailViewController.swift in Sources */, 6F3B87A327968AEB00A4BD07 /* MyPageViewController.swift in Sources */, E89934F727CD1EDE00DCB1A8 /* OnboardingViewController.swift in Sources */, 6F3B878A27968AEB00A4BD07 /* HomeService.swift in Sources */, @@ -1101,6 +1116,7 @@ 6F3B87C327968AEB00A4BD07 /* PhotosTableViewCell.swift in Sources */, 6F3B877527968AEB00A4BD07 /* URL.swift in Sources */, 6F3B877627968AEB00A4BD07 /* Const.swift in Sources */, + E822163528C860CC0090CEC5 /* ReportViewController.swift in Sources */, 6F3B879F27968AEB00A4BD07 /* SplashViewController.swift in Sources */, 6F3B879527968AEB00A4BD07 /* HowTo.swift in Sources */, 6F3B878827968AEB00A4BD07 /* NetworkResult.swift in Sources */, diff --git a/Fillin-iOS/Fillin-iOS/Resources/Constants/Header.swift b/Fillin-iOS/Fillin-iOS/Resources/Constants/Header.swift index 9fa9878..0ca14a0 100644 --- a/Fillin-iOS/Fillin-iOS/Resources/Constants/Header.swift +++ b/Fillin-iOS/Fillin-iOS/Resources/Constants/Header.swift @@ -9,15 +9,15 @@ import Foundation extension Const { struct Header { - static var tokenHeader = ["Content-Type": "application/json", - "token": accessToken] - static var multiTokenHeader = ["Content-Type": "multipart/form-data", - "token": accessToken] - static let loginHeader = ["Content-Type": "application/x-www-form-urlencoded"] -// static var tokenHeader = ["Content-Type": "application/json", -// "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6OSwiZW1haWwiOm51bGwsImlhdCI6MTY0NjMyNjgxNCwiZXhwIjoxNjQ3NTM2NDE0LCJpc3MiOiJmaWxsaW4ifQ.BqXKeusdrBVWzt0HsIAM6wlG-VxcHw8qMEF9BSn0aEs"] -// static var multiTokenHeader = [ -// "Content-Type": "multipart/form-data", -// "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6OSwiZW1haWwiOm51bGwsImlhdCI6MTY0NjMyNjgxNCwiZXhwIjoxNjQ3NTM2NDE0LCJpc3MiOiJmaWxsaW4ifQ.BqXKeusdrBVWzt0HsIAM6wlG-VxcHw8qMEF9BSn0aEs"] +// static var tokenHeader = ["Content-Type": "application/json", +// "token": accessToken] +// static var multiTokenHeader = ["Content-Type": "multipart/form-data", +// "token": accessToken] +// static let loginHeader = ["Content-Type": "application/x-www-form-urlencoded"] + static var tokenHeader = ["Content-Type": "application/json", + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6NDEsImVtYWlsIjoidGVzdEBnbWFpbC5jb20iLCJpYXQiOjE2NjE2ODI2NDYsImV4cCI6MTY2Mjg5MjI0NiwiaXNzIjoiZmlsbGluIn0.eMdMGx1snCx2RkbV-_aVP7or8wYyG0Gc4M5beH-Vthk"] + static var multiTokenHeader = [ + "Content-Type": "multipart/form-data", + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6NDEsImVtYWlsIjoidGVzdEBnbWFpbC5jb20iLCJpYXQiOjE2NjE2ODI2NDYsImV4cCI6MTY2Mjg5MjI0NiwiaXNzIjoiZmlsbGluIn0.eMdMGx1snCx2RkbV-_aVP7or8wYyG0Gc4M5beH-Vthk"] } } diff --git a/Fillin-iOS/Fillin-iOS/Sources/NetworkService/User/UserService.swift b/Fillin-iOS/Fillin-iOS/Sources/NetworkService/User/UserService.swift index 7c6c66d..6f473b4 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/NetworkService/User/UserService.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/NetworkService/User/UserService.swift @@ -48,7 +48,8 @@ extension UserService: TargetType { var headers: [String: String]? { switch self { case .login: - return Const.Header.loginHeader +// return Const.Header.loginHeader + return Const.Header.tokenHeader } } } diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/HomeViewController/HomeViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/HomeViewController/HomeViewController.swift index 0d052d7..6bf4f1b 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/HomeViewController/HomeViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/HomeViewController/HomeViewController.swift @@ -112,7 +112,8 @@ extension HomeViewController: UITableViewDataSource { } tabBarCell.pushToMyPageViewController = { - self.navigationController?.pushViewController(MyPageViewController(), animated: true) +// self.navigationController?.pushViewController(MyPageViewController(), animated: true) + self.navigationController?.pushViewController(TermsViewController(), animated: true) } return tabBarCell case 2 : diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportDetailViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportDetailViewController.swift new file mode 100644 index 0000000..cc52142 --- /dev/null +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportDetailViewController.swift @@ -0,0 +1,29 @@ +// +// ReportDetailViewController.swift +// Fillin-iOS +// +// Created by 김지수 on 2022/09/07. +// + +import UIKit + +class ReportDetailViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destination. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift new file mode 100644 index 0000000..9b5d7e8 --- /dev/null +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift @@ -0,0 +1,29 @@ +// +// ReportViewController.swift +// Fillin-iOS +// +// Created by 김지수 on 2022/09/07. +// + +import UIKit + +class ReportViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destination. + // Pass the selected object to the new view controller. + } + */ + +} From 1fd3f693031b287ddc4f63bf308f09adef191320 Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Wed, 7 Sep 2022 15:01:41 +0900 Subject: [PATCH 07/28] =?UTF-8?q?[FEAT]=20-=20#134=20ReportVC,=20ReportDet?= =?UTF-8?q?ailVC=20Layout=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReportDetailViewController.swift | 26 +-- .../ReportViewController.swift | 200 ++++++++++++++++-- 2 files changed, 197 insertions(+), 29 deletions(-) diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportDetailViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportDetailViewController.swift index cc52142..8df2a14 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportDetailViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportDetailViewController.swift @@ -7,23 +7,23 @@ import UIKit +import SnapKit +import Then + +// MARK: - ReportDetailViewController class ReportDetailViewController: UIViewController { + + // MARK: - Components + + // MARK: - LifeCycle override func viewDidLoad() { super.viewDidLoad() - - // Do any additional setup after loading the view. } +} +// MARK: - Extension +extension ReportDetailViewController { + func layout() { - - /* - // MARK: - Navigation - - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destination. - // Pass the selected object to the new view controller. - } - */ - + } } diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift index 9b5d7e8..15d5769 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift @@ -7,23 +7,191 @@ import UIKit -class ReportViewController: UIViewController { - - override func viewDidLoad() { - super.viewDidLoad() +import SnapKit +import Then - // Do any additional setup after loading the view. - } +// MARK: - ReportViewController +class ReportViewController: UIViewController { + + // MARK: - Components + let navigationBar = FilinNavigationBar() + let titleLabel = UILabel() + let subtitleLabel = UILabel() + let containerView = UIView() + let filmreportView = UIView() + let filmreportContainerView = UIView() + let filmreportImage = UIImageView() + let filmreportLabel = UILabel() + let shopreportView = UIView() + let shopreportContainerView = UIView() + let shopreportImage = UIImageView() + let shopreportLabel = UILabel() + let extrareportButton = UIButton() + let extrareportIcon = UIButton() + let underlineView = UIView() + + // MARK: - LifeCycle + override func viewDidLoad() { + super.viewDidLoad() + layout() + } +} +// MARK: - Extension +extension ReportViewController { + func layout() { - - /* - // MARK: - Navigation - - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destination. - // Pass the selected object to the new view controller. + } + func layoutNavigaionBar() { + self.view.add(navigationBar) { + self.navigationBar.popViewController = { + self.navigationController?.popViewController(animated: true) + } + $0.snp.makeConstraints { make in + make.top.equalTo(self.view.safeAreaLayoutGuide.snp.top) + make.leading.trailing.equalToSuperview() + make.height.equalTo(50) + } } - */ - + } + func layoutTitleLabel() { + self.view.add(titleLabel) { + $0.setupLabel(text: "필린은 언제나 열려있어요!", + color: .fillinWhite, + font: .headline) + $0.snp.makeConstraints { make in + make.top.equalTo(self.navigationBar.snp.bottom).offset(24) + make.leading.equalToSuperview().offset(18) + } + } + } + func layoutSubTitleLabel() { + self.view.add(subtitleLabel) { + $0.textAlignment = .left + $0.numberOfLines = 3 + $0.setupLabel(text: "찰칵찰칵 필린이님만 아는 필름, 현상소 정보가 있다면\n필린에게도 제보해주세요!\n필린님의 소중한 제보가 필린을 성장하게 합니다.", + color: .grey1, + font: .body2) + $0.snp.makeConstraints { make in + make.top.equalTo(self.titleLabel.snp.bottom).offset(14) + make.leading.equalTo(self.titleLabel) + } + } + } + func layoutContainerView() { + self.view.add(containerView) { + $0.backgroundColor = .clear + $0.snp.makeConstraints { make in + make.top.equalTo(self.subtitleLabel.snp.bottom).offset(35) + make.centerX.equalToSuperview() + make.leading.equalToSuperview().offset(18) + make.height.equalTo(86) + } + } + } + func layoutFilmReportView() { + self.containerView.add(filmreportView) { + $0.backgroundColor = .darkGrey3 + $0.snp.makeConstraints { make in + make.top.leading.bottom.equalToSuperview() + make.width.equalTo((UIScreen.main.bounds.width-45)/2) + } + } + } + func layoutFilmReportContainerView() { + self.filmreportView.add(filmreportContainerView) { + $0.backgroundColor = .clear + $0.snp.makeConstraints { make in + make.centerX.centerY.equalToSuperview() + make.width.equalTo(97) + make.height.equalTo(26) + } + } + } + func layoutFilmReportImage() { + self.filmreportContainerView.add(filmreportImage) { + $0.image = UIImage(asset: Asset.iconFilmroll) + $0.snp.makeConstraints { make in + make.top.leading.bottom.equalToSuperview() + make.width.height.equalTo(24) + } + } + } + func layoutFilmReportLabel() { + self.filmreportContainerView.add(filmreportLabel) { + $0.setupLabel(text: "필름 제보", + color: .fillinWhite, + font: .body3) + $0.snp.makeConstraints { make in + make.top.trailing.bottom.equalToSuperview() + } + } + } + func layoutShopReportView() { + self.containerView.add(shopreportView) { + $0.backgroundColor = .darkGrey3 + $0.snp.makeConstraints { make in + make.top.trailing.bottom.equalToSuperview() + make.width.equalTo((UIScreen.main.bounds.width-45)/2) + } + } + } + func layoutShopReportContainerView() { + self.shopreportView.add(shopreportContainerView) { + $0.backgroundColor = .clear + $0.snp.makeConstraints { make in + make.centerX.centerY.equalToSuperview() + make.width.equalTo(97) + make.height.equalTo(26) + } + } + } + func layoutShopReportImage() { + self.shopreportContainerView.add(shopreportImage) { + $0.image = UIImage(asset: Asset.iconFilmroll) + $0.snp.makeConstraints { make in + make.top.leading.bottom.equalToSuperview() + make.width.height.equalTo(24) + } + } + } + func layoutShopReportLabel() { + self.shopreportContainerView.add(shopreportLabel) { + $0.setupLabel(text: "현상소 제보", + color: .fillinWhite, + font: .body3) + $0.snp.makeConstraints { make in + make.top.trailing.bottom.equalToSuperview() + } + } + } + func layoutExtraReportButton() { + self.view.add(extrareportButton) { + $0.setupButton(title: "기타 문의/건의", color: .grey2, font: .body1, backgroundColor: .clear, state: .normal, radius: 0) + $0.snp.makeConstraints { make in + make.top.equalTo(self.containerView.snp.bottom).offset(18) + } + } + } + func layoutExtraReportIcon() { + self.view.add(extrareportIcon) { + $0.setImage(UIImage(asset: Asset.iconFilmroll), + for: .normal) + $0.snp.makeConstraints { make in + make.centerY.equalTo(self.extrareportButton) + make.leading.equalTo(self.extrareportButton).offset(2) + make.width.height.equalTo(13) + } + } + } + func layoutUnderLineView() { + self.view.add(underlineView) { + $0.backgroundColor = .grey3 + $0.snp.makeConstraints { make in + make.top.equalTo(self.extrareportButton.snp.bottom).offset(1) + make.leading.equalToSuperview().offset(18) + make.width.equalTo(88) + make.height.equalTo(1) + } + } + } } From cc53f973b389a501fa6d05e054c6e4ffdf15d363 Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Wed, 7 Sep 2022 15:19:50 +0900 Subject: [PATCH 08/28] =?UTF-8?q?[FEAT]=20-=20#134=20ReportVC,=20ReportDet?= =?UTF-8?q?ailVC=20Layout=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../goRightIcon.imageset/Contents.json | 23 ++++++++++++++++++ .../goRightIcon.imageset/goRightIcon.png | Bin 0 -> 193 bytes .../goRightIcon.imageset/goRightIcon@2x.png | Bin 0 -> 298 bytes .../goRightIcon.imageset/goRightIcon@3x.png | Bin 0 -> 375 bytes .../Constants/Assets+Generated.swift | 1 + .../HomeViewController.swift | 2 +- .../ReportViewController.swift | 4 +-- 7 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/goRightIcon.imageset/Contents.json create mode 100644 Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/goRightIcon.imageset/goRightIcon.png create mode 100644 Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/goRightIcon.imageset/goRightIcon@2x.png create mode 100644 Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/goRightIcon.imageset/goRightIcon@3x.png diff --git a/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/goRightIcon.imageset/Contents.json b/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/goRightIcon.imageset/Contents.json new file mode 100644 index 0000000..ce66442 --- /dev/null +++ b/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/goRightIcon.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "goRightIcon.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "goRightIcon@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "goRightIcon@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/goRightIcon.imageset/goRightIcon.png b/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/goRightIcon.imageset/goRightIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..c73407929ffad3e121cb25ae7e3f0147e935b10a GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp@Ak4uAB#T}@sR2@)1s;*b3=G`DAk4@xYmNj^kg+(( z-HBn{IhmJ04okYDuOkD)#(wTUiL5|=n5TOq8{L@`>R9=KHZXX)`njxgN@xNAEPg%Z literal 0 HcmV?d00001 diff --git a/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/goRightIcon.imageset/goRightIcon@2x.png b/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/goRightIcon.imageset/goRightIcon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d1e75a81eb3a451a788907b97e5bdc421d1c08d9 GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^QXtI11|(N{`J4k%oCO|{#S9E$svykh8Km+7D9BhG z6E!m z6BSwRaj4c@5%FPAem-Yf&^srN-s4NA-0Csp40D$0;SJoV+0o?dy!eJt2Fvf}0(IVN zUz#VDn@HvH7M;8Qd6WP3_S@_|{k!;gUE39zeL3g_M(~`5zs3Pp00i_>zopr07k%WtN;K2 literal 0 HcmV?d00001 diff --git a/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/goRightIcon.imageset/goRightIcon@3x.png b/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/goRightIcon.imageset/goRightIcon@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..b698c0b53dbdc5247824f44672d58019d98b08be GIT binary patch literal 375 zcmeAS@N?(olHy`uVBq!ia0vp^>LAR)1|)kH2buyY&H|6fVg?393lL^>oo1K-6l5$8 za(7}_cTVOdki(Mh=pr*F{Fa=?e&ek%?1Lk50xt#dL9UFa&k*# z@lso`Afctl$?YS@6p@C<&MFfFf^K|&v*d%mqGb4dhEC%^z3J7V0vq>Wgk6xtCakS7w zLFV|vhQISey~Fz!ARygw@=sOnuhqo*z1vA*WDG~+}FyP zoz^$I>z{(T!Hm?%RgddF<)8D_5@(l`dEt|PV{4|A^Zp}04@`PglX$W~af8Z^fQXVg zEMlVSt*(a^69Nk~BxKrK91Alf+HFGmU+?N;X(}|3ah7;8t(-+?`f1rJhS$D6o&E0a R$ARI*;OXk;vd$@?2>>{6jL851 literal 0 HcmV?d00001 diff --git a/Fillin-iOS/Fillin-iOS/Resources/Constants/Assets+Generated.swift b/Fillin-iOS/Fillin-iOS/Resources/Constants/Assets+Generated.swift index 9ec32c5..b9af8d1 100644 --- a/Fillin-iOS/Fillin-iOS/Resources/Constants/Assets+Generated.swift +++ b/Fillin-iOS/Fillin-iOS/Resources/Constants/Assets+Generated.swift @@ -34,6 +34,7 @@ internal enum Asset { internal static let btnOpen = ImageAsset(name: "btnOpen") internal static let btnScrap = ImageAsset(name: "btnScrap") internal static let btnlogin = ImageAsset(name: "btnlogin") + internal static let goRightIcon = ImageAsset(name: "goRightIcon") internal static let icnAddPhotoBig = ImageAsset(name: "icnAddPhotoBig") internal static let icnCall = ImageAsset(name: "icnCall") internal static let icnCamera = ImageAsset(name: "icnCamera") diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/HomeViewController/HomeViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/HomeViewController/HomeViewController.swift index 6bf4f1b..d6706de 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/HomeViewController/HomeViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/HomeViewController/HomeViewController.swift @@ -113,7 +113,7 @@ extension HomeViewController: UITableViewDataSource { tabBarCell.pushToMyPageViewController = { // self.navigationController?.pushViewController(MyPageViewController(), animated: true) - self.navigationController?.pushViewController(TermsViewController(), animated: true) + self.navigationController?.pushViewController(ReportViewController(), animated: true) } return tabBarCell case 2 : diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift index 15d5769..6ec281d 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift @@ -147,7 +147,7 @@ extension ReportViewController { } func layoutShopReportImage() { self.shopreportContainerView.add(shopreportImage) { - $0.image = UIImage(asset: Asset.iconFilmroll) + $0.image = UIImage(asset: Asset.icnMap) $0.snp.makeConstraints { make in make.top.leading.bottom.equalToSuperview() make.width.height.equalTo(24) @@ -174,7 +174,7 @@ extension ReportViewController { } func layoutExtraReportIcon() { self.view.add(extrareportIcon) { - $0.setImage(UIImage(asset: Asset.iconFilmroll), + $0.setImage(UIImage(asset: Asset.goRightIcon), for: .normal) $0.snp.makeConstraints { make in make.centerY.equalTo(self.extrareportButton) From ef3139e33d42e1017f0fc67d49a527a04e193f29 Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Wed, 7 Sep 2022 16:30:26 +0900 Subject: [PATCH 09/28] =?UTF-8?q?[FEAT]=20-=20#134=20ReportVC,=20ReportDet?= =?UTF-8?q?ailVC=20Layout=20=EC=88=98=EC=A0=95=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HomeViewController.swift | 3 +-- .../ReportViewController.swift | 23 +++++++++++++++---- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/HomeViewController/HomeViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/HomeViewController/HomeViewController.swift index d6706de..0d052d7 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/HomeViewController/HomeViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/HomeViewController/HomeViewController.swift @@ -112,8 +112,7 @@ extension HomeViewController: UITableViewDataSource { } tabBarCell.pushToMyPageViewController = { -// self.navigationController?.pushViewController(MyPageViewController(), animated: true) - self.navigationController?.pushViewController(ReportViewController(), animated: true) + self.navigationController?.pushViewController(MyPageViewController(), animated: true) } return tabBarCell case 2 : diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift index 6ec281d..d0be946 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift @@ -39,7 +39,21 @@ class ReportViewController: UIViewController { // MARK: - Extension extension ReportViewController { func layout() { - + layoutNavigaionBar() + layoutTitleLabel() + layoutSubTitleLabel() + layoutContainerView() + layoutFilmReportView() + layoutFilmReportContainerView() + layoutFilmReportImage() + layoutFilmReportLabel() + layoutShopReportView() + layoutShopReportContainerView() + layoutShopReportImage() + layoutShopReportLabel() + layoutExtraReportButton() + layoutExtraReportIcon() + layoutUnderLineView() } func layoutNavigaionBar() { self.view.add(navigationBar) { @@ -140,7 +154,7 @@ extension ReportViewController { $0.backgroundColor = .clear $0.snp.makeConstraints { make in make.centerX.centerY.equalToSuperview() - make.width.equalTo(97) + make.width.equalTo(112) make.height.equalTo(26) } } @@ -169,6 +183,7 @@ extension ReportViewController { $0.setupButton(title: "기타 문의/건의", color: .grey2, font: .body1, backgroundColor: .clear, state: .normal, radius: 0) $0.snp.makeConstraints { make in make.top.equalTo(self.containerView.snp.bottom).offset(18) + make.leading.equalToSuperview().offset(18) } } } @@ -177,8 +192,8 @@ extension ReportViewController { $0.setImage(UIImage(asset: Asset.goRightIcon), for: .normal) $0.snp.makeConstraints { make in - make.centerY.equalTo(self.extrareportButton) - make.leading.equalTo(self.extrareportButton).offset(2) + make.centerY.equalTo(self.extrareportButton).offset(1) + make.leading.equalTo(self.extrareportButton.snp.trailing).offset(2) make.width.height.equalTo(13) } } From 156cd0f77c4d10496f4b6c162e9c0e9ed86530b3 Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Sun, 11 Sep 2022 18:00:11 +0900 Subject: [PATCH 10/28] =?UTF-8?q?[FEAT]=20-=20#138=20ReportDetailVC=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Fillin-iOS.xcodeproj/project.pbxproj | 16 +++- .../ReportContactViewController.swift | 29 ++++++ .../ReportDetailViewController.swift | 29 ------ .../ReportFilmViewController.swift | 29 ++++++ .../ReportlabViewController.swift | 91 +++++++++++++++++++ 5 files changed, 161 insertions(+), 33 deletions(-) create mode 100644 Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportContactViewController.swift delete mode 100644 Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportDetailViewController.swift create mode 100644 Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportFilmViewController.swift create mode 100644 Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift diff --git a/Fillin-iOS/Fillin-iOS.xcodeproj/project.pbxproj b/Fillin-iOS/Fillin-iOS.xcodeproj/project.pbxproj index 6311c67..00f2578 100644 --- a/Fillin-iOS/Fillin-iOS.xcodeproj/project.pbxproj +++ b/Fillin-iOS/Fillin-iOS.xcodeproj/project.pbxproj @@ -116,8 +116,10 @@ 77EB42232797D1CE00C726D8 /* FilmSelectService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77EB42222797D1CE00C726D8 /* FilmSelectService.swift */; }; 77EB42262797DAFD00C726D8 /* FilmResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77EB42252797DAFD00C726D8 /* FilmResponse.swift */; }; 9ADF3537C1D51ED22F4C921B /* Pods_Fillin_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F33300C623DFF466AFCE2914 /* Pods_Fillin_iOS.framework */; }; + E80A726828CDDA66000A75B5 /* ReportFilmViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E80A726728CDDA66000A75B5 /* ReportFilmViewController.swift */; }; + E80A726A28CDDA7E000A75B5 /* ReportContactViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E80A726928CDDA7E000A75B5 /* ReportContactViewController.swift */; }; E822163528C860CC0090CEC5 /* ReportViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E822163428C860CC0090CEC5 /* ReportViewController.swift */; }; - E822163728C860E10090CEC5 /* ReportDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E822163628C860E10090CEC5 /* ReportDetailViewController.swift */; }; + E822163728C860E10090CEC5 /* ReportlabViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E822163628C860E10090CEC5 /* ReportlabViewController.swift */; }; E828BF9127991C14009C1475 /* Status.swift in Sources */ = {isa = PBXBuildFile; fileRef = E828BF9027991C14009C1475 /* Status.swift */; }; E86731CB279728EE00FCD0EE /* UIViewController+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = E86731CA279728EE00FCD0EE /* UIViewController+Extension.swift */; }; E89934F727CD1EDE00DCB1A8 /* OnboardingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E89934F627CD1EDE00DCB1A8 /* OnboardingViewController.swift */; }; @@ -241,8 +243,10 @@ 77EB42222797D1CE00C726D8 /* FilmSelectService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilmSelectService.swift; sourceTree = ""; }; 77EB42252797DAFD00C726D8 /* FilmResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilmResponse.swift; sourceTree = ""; }; 864A552B88FE473B50DE4171 /* Pods-Fillin-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Fillin-iOS.debug.xcconfig"; path = "Target Support Files/Pods-Fillin-iOS/Pods-Fillin-iOS.debug.xcconfig"; sourceTree = ""; }; + E80A726728CDDA66000A75B5 /* ReportFilmViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportFilmViewController.swift; sourceTree = ""; }; + E80A726928CDDA7E000A75B5 /* ReportContactViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportContactViewController.swift; sourceTree = ""; }; E822163428C860CC0090CEC5 /* ReportViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportViewController.swift; sourceTree = ""; }; - E822163628C860E10090CEC5 /* ReportDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportDetailViewController.swift; sourceTree = ""; }; + E822163628C860E10090CEC5 /* ReportlabViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportlabViewController.swift; sourceTree = ""; }; E828BF9027991C14009C1475 /* Status.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Status.swift; sourceTree = ""; }; E86731CA279728EE00FCD0EE /* UIViewController+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIViewController+Extension.swift"; sourceTree = ""; }; E89934F627CD1EDE00DCB1A8 /* OnboardingViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingViewController.swift; sourceTree = ""; }; @@ -837,7 +841,9 @@ isa = PBXGroup; children = ( E822163428C860CC0090CEC5 /* ReportViewController.swift */, - E822163628C860E10090CEC5 /* ReportDetailViewController.swift */, + E822163628C860E10090CEC5 /* ReportlabViewController.swift */, + E80A726928CDDA7E000A75B5 /* ReportContactViewController.swift */, + E80A726728CDDA66000A75B5 /* ReportFilmViewController.swift */, ); path = ReportViewController; sourceTree = ""; @@ -1050,6 +1056,7 @@ 6F3B87C527968AEB00A4BD07 /* ArrowCollectionViewCell.swift in Sources */, 6F8B71F92796F33A00F88EB3 /* StudioResponse.swift in Sources */, 6F3B877A27968AEB00A4BD07 /* UILabel+Extension.swift in Sources */, + E80A726828CDDA66000A75B5 /* ReportFilmViewController.swift in Sources */, 6F3B87AF27968AEB00A4BD07 /* FilmRollViewController+DataSource.swift in Sources */, 6F3B87CF27968AEB00A4BD07 /* SceneDelegate.swift in Sources */, 6F3B87B127968AEB00A4BD07 /* FilmRollViewController+Layout.swift in Sources */, @@ -1059,6 +1066,7 @@ 6F3B878727968AEB00A4BD07 /* MapLocation.swift in Sources */, 6F3B87AB27968AEB00A4BD07 /* AddPhotoViewController.swift in Sources */, 6F3B877427968AEB00A4BD07 /* Notification.swift in Sources */, + E80A726A28CDDA7E000A75B5 /* ReportContactViewController.swift in Sources */, E86731CB279728EE00FCD0EE /* UIViewController+Extension.swift in Sources */, 6F3B87BA27968AEB00A4BD07 /* FilmCurationCollectionReusableView.swift in Sources */, 6F3B879727968AEB00A4BD07 /* FilmRollAPI.swift in Sources */, @@ -1071,7 +1079,7 @@ 6F3B879227968AEB00A4BD07 /* AddPhotoService.swift in Sources */, 6F3B87A127968AEB00A4BD07 /* MyPagePhotoCollectionViewCell.swift in Sources */, 6F3B878B27968AEB00A4BD07 /* HomeAPI.swift in Sources */, - E822163728C860E10090CEC5 /* ReportDetailViewController.swift in Sources */, + E822163728C860E10090CEC5 /* ReportlabViewController.swift in Sources */, 6F3B87A327968AEB00A4BD07 /* MyPageViewController.swift in Sources */, E89934F727CD1EDE00DCB1A8 /* OnboardingViewController.swift in Sources */, 6F3B878A27968AEB00A4BD07 /* HomeService.swift in Sources */, diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportContactViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportContactViewController.swift new file mode 100644 index 0000000..ea250c3 --- /dev/null +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportContactViewController.swift @@ -0,0 +1,29 @@ +// +// ReportContactViewController.swift +// Fillin-iOS +// +// Created by 김지수 on 2022/09/11. +// + +import UIKit + +class ReportContactViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destination. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportDetailViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportDetailViewController.swift deleted file mode 100644 index 8df2a14..0000000 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportDetailViewController.swift +++ /dev/null @@ -1,29 +0,0 @@ -// -// ReportDetailViewController.swift -// Fillin-iOS -// -// Created by 김지수 on 2022/09/07. -// - -import UIKit - -import SnapKit -import Then - -// MARK: - ReportDetailViewController -class ReportDetailViewController: UIViewController { - - // MARK: - Components - - - // MARK: - LifeCycle - override func viewDidLoad() { - super.viewDidLoad() - } -} -// MARK: - Extension -extension ReportDetailViewController { - func layout() { - - } -} diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportFilmViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportFilmViewController.swift new file mode 100644 index 0000000..0a67f38 --- /dev/null +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportFilmViewController.swift @@ -0,0 +1,29 @@ +// +// ReportFilmViewController.swift +// Fillin-iOS +// +// Created by 김지수 on 2022/09/11. +// + +import UIKit + +class ReportFilmViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destination. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift new file mode 100644 index 0000000..e570808 --- /dev/null +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift @@ -0,0 +1,91 @@ +// +// ReportDetailViewController.swift +// Fillin-iOS +// +// Created by 김지수 on 2022/09/07. +// + +import UIKit + +import SnapKit +import Then + +// MARK: - ReportDetailViewController +class ReportlabViewController: UIViewController { + + // MARK: - Components + let navigationBar = FilinNavigationBar() + let titleLabel = UILabel() + let reportTextView = UITextView() + let sendButton = UIButton() + + // MARK: - LifeCycle + override func viewDidLoad() { + super.viewDidLoad() + self.reportTextView.delegate = self + layout() + } +} +// MARK: - Extension +extension ReportlabViewController { + func layout() { + + } + func layoutNavigaionBar() { + self.view.add(navigationBar) { + self.navigationBar.popViewController = { + self.navigationController?.popViewController(animated: true) + } + $0.snp.makeConstraints { make in + make.top.equalTo(self.view.safeAreaLayoutGuide.snp.top) + make.leading.trailing.equalToSuperview() + make.height.equalTo(50) + } + } + } + func layoutTitleLabel() { + self.view.add(titleLabel) { + $0.setupLabel(text: "현상소 제보", + color: .fillinWhite, + font: .subhead3) + $0.snp.makeConstraints { make in + make.top.equalTo(self.navigationBar.snp.bottom).offset(24) + make.leading.equalToSuperview().offset(18) + } + } + } + func layoutReportTextView() { + self.view.add(reportTextView) { + $0.autocorrectionType = .no + $0.autocapitalizationType = .none + $0.backgroundColor = UIColor(red: 29.0 / 255.0, green: 29.0 / 255.0, blue: 29.0 / 255.0, alpha: 1.0) + $0.textContainerInset = UIEdgeInsets(top: 18, left: 18, bottom: 18, right: 18) + $0.font = .body2 + $0.snp.makeConstraints { make in + make.top.equalTo(self.titleLabel.snp.bottom).offset(15) + make.centerX.equalToSuperview() + make.leading.equalToSuperview().offset(18) + make.height.equalTo(185) + } + } + } + func layoutSendButton() { + self.view.add(sendButton) { + $0.setupButton(title: "보내기", color: .grey4, font: .headline, backgroundColor: UIColor(red: 29.0 / 255.0, green: 29.0 / 255.0, blue: 29.0 / 255.0, alpha: 1.0), state: .normal, radius: 0) + $0.snp.makeConstraints { make in + make.centerX.equalToSuperview() + make.leading.trailing.equalToSuperview() + make.bottom.equalToSuperview() + make.height.equalTo(80) + } + } + } +} + +extension ReportlabViewController: UITextViewDelegate { + func textViewDidBeginEditing(_ textView: UITextView) { + } + + func textViewDidEndEditing(_ textView: UITextView) { + } +} From 0c1a90a6a6591b54fb3862c02d68b1c3b86fbe45 Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Sun, 11 Sep 2022 18:02:41 +0900 Subject: [PATCH 11/28] =?UTF-8?q?[ADD]=20#138=20-=20UIColorExtension=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Resources/Extensions/UIColor+Extension.swift | 3 +++ .../ReportViewController/ReportlabViewController.swift | 9 +++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Fillin-iOS/Fillin-iOS/Resources/Extensions/UIColor+Extension.swift b/Fillin-iOS/Fillin-iOS/Resources/Extensions/UIColor+Extension.swift index 8f66593..e7be322 100644 --- a/Fillin-iOS/Fillin-iOS/Resources/Extensions/UIColor+Extension.swift +++ b/Fillin-iOS/Fillin-iOS/Resources/Extensions/UIColor+Extension.swift @@ -84,5 +84,8 @@ extension UIColor { @nonobjc class var photobackgroundCover: UIColor { return UIColor(white: 0.0, alpha: 0.7) } + @nonobjc class var textviewGrey: UIColor { + return UIColor(red: 29.0 / 255.0, green: 29.0 / 255.0, blue: 29.0 / 255.0, alpha: 1.0) + } } diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift index e570808..8973e4a 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift @@ -58,7 +58,7 @@ extension ReportlabViewController { self.view.add(reportTextView) { $0.autocorrectionType = .no $0.autocapitalizationType = .none - $0.backgroundColor = UIColor(red: 29.0 / 255.0, green: 29.0 / 255.0, blue: 29.0 / 255.0, alpha: 1.0) + $0.backgroundColor = .textviewGrey $0.textContainerInset = UIEdgeInsets(top: 18, left: 18, bottom: 18, right: 18) $0.font = .body2 $0.snp.makeConstraints { make in @@ -71,7 +71,12 @@ extension ReportlabViewController { } func layoutSendButton() { self.view.add(sendButton) { - $0.setupButton(title: "보내기", color: .grey4, font: .headline, backgroundColor: UIColor(red: 29.0 / 255.0, green: 29.0 / 255.0, blue: 29.0 / 255.0, alpha: 1.0), state: .normal, radius: 0) + $0.setupButton(title: "보내기", + color: .grey4, + font: .headline, + backgroundColor: .textviewGrey, + state: .normal, + radius: 0) $0.snp.makeConstraints { make in make.centerX.equalToSuperview() make.leading.trailing.equalToSuperview() From 200603018bb4f66d1a959975fa291f3877690bfe Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Sun, 11 Sep 2022 18:39:14 +0900 Subject: [PATCH 12/28] =?UTF-8?q?[FEAT]=20-=20#138=20=ED=98=84=EC=83=81?= =?UTF-8?q?=EC=86=8C=EC=A0=9C=EB=B3=B4=ED=95=98=EA=B8=B0=20VC=20=EB=A0=88?= =?UTF-8?q?=EC=9D=B4=EC=95=84=EC=9B=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Fillin-iOS/Sources/SceneDelegate.swift | 4 ++-- .../HomeViewController/HomeViewController.swift | 3 ++- .../ReportlabViewController.swift | 16 +++++++++++++++- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/Fillin-iOS/Fillin-iOS/Sources/SceneDelegate.swift b/Fillin-iOS/Fillin-iOS/Sources/SceneDelegate.swift index ebc5c3c..18e6636 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/SceneDelegate.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/SceneDelegate.swift @@ -30,9 +30,9 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { homeNavigationController = UINavigationController(rootViewController: HomeViewController()) } else { if UserDefaults.standard.object(forKey: Const.UserDefaultsKey.isOnboarding) != nil { - homeNavigationController = UINavigationController(rootViewController: LoginViewController()) + homeNavigationController = UINavigationController(rootViewController: HomeViewController()) } else { - homeNavigationController = UINavigationController(rootViewController: OnboardingViewController()) + homeNavigationController = UINavigationController(rootViewController: HomeViewController()) } } self.window?.rootViewController = homeNavigationController diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/HomeViewController/HomeViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/HomeViewController/HomeViewController.swift index 0d052d7..2d48a14 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/HomeViewController/HomeViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/HomeViewController/HomeViewController.swift @@ -112,7 +112,8 @@ extension HomeViewController: UITableViewDataSource { } tabBarCell.pushToMyPageViewController = { - self.navigationController?.pushViewController(MyPageViewController(), animated: true) +// self.navigationController?.pushViewController(MyPageViewController(), animated: true) + self.navigationController?.pushViewController(ReportlabViewController(), animated: true) } return tabBarCell case 2 : diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift index 8973e4a..63606aa 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift @@ -29,7 +29,10 @@ class ReportlabViewController: UIViewController { // MARK: - Extension extension ReportlabViewController { func layout() { - + layoutNavigaionBar() + layoutTitleLabel() + layoutReportTextView() + layoutSendButton() } func layoutNavigaionBar() { self.view.add(navigationBar) { @@ -61,6 +64,8 @@ extension ReportlabViewController { $0.backgroundColor = .textviewGrey $0.textContainerInset = UIEdgeInsets(top: 18, left: 18, bottom: 18, right: 18) $0.font = .body2 + $0.text = "찰칵찰칵 필린이님만 아는 현상소 정보가 있다면 필린\n에게도 제보해주세요! 필린님의 소중한 제보가 필린\n을 성장하게 합니다." + $0.textColor = .grey2 $0.snp.makeConstraints { make in make.top.equalTo(self.titleLabel.snp.bottom).offset(15) make.centerX.equalToSuperview() @@ -85,12 +90,21 @@ extension ReportlabViewController { } } } + //TODO: View 터치 시 Keyboard dismiss 추가하기 } extension ReportlabViewController: UITextViewDelegate { func textViewDidBeginEditing(_ textView: UITextView) { + if textView.textColor == UIColor.grey2 { + textView.text = nil + textView.textColor = UIColor.fillinWhite + } } func textViewDidEndEditing(_ textView: UITextView) { + if textView.text.isEmpty { + textView.text = "찰칵찰칵 필린이님만 아는 현상소 정보가 있다면 필린에게도 제보해주세요! 필린님의 소중한 제보가 필린을 성장하게 합니다." + textView.textColor = UIColor.grey2 + } } } From 2b9d47a9ec395271f5b62ef98259dd6ff6a7001a Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Thu, 15 Sep 2022 23:24:56 +0900 Subject: [PATCH 13/28] =?UTF-8?q?[ADD]=20#138=20-=20Keyboard=20dismiss=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReportViewController/ReportlabViewController.swift | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift index 63606aa..8807d98 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift @@ -24,6 +24,11 @@ class ReportlabViewController: UIViewController { super.viewDidLoad() self.reportTextView.delegate = self layout() + let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.handleTap)) + tapRecognizer.numberOfTapsRequired = 1 + tapRecognizer.isEnabled = true + tapRecognizer.cancelsTouchesInView = false + self.view.addGestureRecognizer(tapRecognizer) } } // MARK: - Extension @@ -91,8 +96,10 @@ extension ReportlabViewController { } } //TODO: View 터치 시 Keyboard dismiss 추가하기 + @objc func handleTap() { + reportTextView.resignFirstResponder() // dismiss keyoard + } } - extension ReportlabViewController: UITextViewDelegate { func textViewDidBeginEditing(_ textView: UITextView) { if textView.textColor == UIColor.grey2 { From 9c53e7b2c08aaa0f7b0af93e9c6e5b303059d96d Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Thu, 15 Sep 2022 23:35:08 +0900 Subject: [PATCH 14/28] =?UTF-8?q?[ADD]=20#138=20-=20Keyboard=20dismiss=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReportViewController/ReportlabViewController.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift index 8807d98..41690d7 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift @@ -24,6 +24,7 @@ class ReportlabViewController: UIViewController { super.viewDidLoad() self.reportTextView.delegate = self layout() + setUI() let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.handleTap)) tapRecognizer.numberOfTapsRequired = 1 tapRecognizer.isEnabled = true @@ -39,6 +40,9 @@ extension ReportlabViewController { layoutReportTextView() layoutSendButton() } + func setUI() { + self.view.backgroundColor = .fillinBlack + } func layoutNavigaionBar() { self.view.add(navigationBar) { self.navigationBar.popViewController = { From d2d1de9b871537fda21fd7e69a074f84e7486fd6 Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Sun, 18 Sep 2022 00:41:31 +0900 Subject: [PATCH 15/28] =?UTF-8?q?[ADD]=20#138=20-=20=EB=B3=B4=EB=82=B4?= =?UTF-8?q?=EA=B8=B0=20=EB=B2=84=ED=8A=BC=20=ED=99=9C=EC=84=B1=ED=99=94=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReportlabViewController.swift | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift index 41690d7..a6beaea 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift @@ -91,6 +91,8 @@ extension ReportlabViewController { backgroundColor: .textviewGrey, state: .normal, radius: 0) + $0.isUserInteractionEnabled = false + $0.addTarget(self, action: #selector(self.sendButtonClicked), for: .touchUpInside) $0.snp.makeConstraints { make in make.centerX.equalToSuperview() make.leading.trailing.equalToSuperview() @@ -99,9 +101,10 @@ extension ReportlabViewController { } } } - //TODO: View 터치 시 Keyboard dismiss 추가하기 @objc func handleTap() { - reportTextView.resignFirstResponder() // dismiss keyoard + reportTextView.resignFirstResponder() + } + @objc func sendButtonClicked() { } } extension ReportlabViewController: UITextViewDelegate { @@ -116,6 +119,15 @@ extension ReportlabViewController: UITextViewDelegate { if textView.text.isEmpty { textView.text = "찰칵찰칵 필린이님만 아는 현상소 정보가 있다면 필린에게도 제보해주세요! 필린님의 소중한 제보가 필린을 성장하게 합니다." textView.textColor = UIColor.grey2 + } else { + //TextView에 내용 있을 때 버튼 활성화 + sendButton.setupButton(title: "보내기", + color: .fillinBlack, + font: .headline, + backgroundColor: .fillinRed, + state: .normal, + radius: 0) + sendButton.isUserInteractionEnabled = true } } } From 1fd72225e8d1611c9bf9c451ecf461a906ee566f Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Sun, 18 Sep 2022 00:43:49 +0900 Subject: [PATCH 16/28] =?UTF-8?q?[FEAT]=20#138=20-=20=ED=95=84=EB=A6=84=20?= =?UTF-8?q?=EC=A0=9C=EB=B3=B4=ED=95=98=EA=B8=B0=20=EB=B7=B0=20=EB=A0=88?= =?UTF-8?q?=EC=9D=B4=EC=95=84=EC=9B=83=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReportContactViewController.swift | 138 +++++++++++++++--- 1 file changed, 121 insertions(+), 17 deletions(-) diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportContactViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportContactViewController.swift index ea250c3..0c4ae61 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportContactViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportContactViewController.swift @@ -2,28 +2,132 @@ // ReportContactViewController.swift // Fillin-iOS // -// Created by 김지수 on 2022/09/11. +// Created by 김지수 on 2022/09/07. // import UIKit -class ReportContactViewController: UIViewController { - - override func viewDidLoad() { - super.viewDidLoad() +import SnapKit +import Then - // Do any additional setup after loading the view. +// MARK: - ReportContactViewController +class ReportContactViewController: UIViewController { + + // MARK: - Components + let navigationBar = FilinNavigationBar() + let titleLabel = UILabel() + let reportTextView = UITextView() + let sendButton = UIButton() + + // MARK: - LifeCycle + override func viewDidLoad() { + super.viewDidLoad() + self.reportTextView.delegate = self + layout() + setUI() + let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.handleTap)) + tapRecognizer.numberOfTapsRequired = 1 + tapRecognizer.isEnabled = true + tapRecognizer.cancelsTouchesInView = false + self.view.addGestureRecognizer(tapRecognizer) + } +} +// MARK: - Extension +extension ReportContactViewController { + func layout() { + layoutNavigaionBar() + layoutTitleLabel() + layoutReportTextView() + layoutSendButton() + } + func setUI() { + self.view.backgroundColor = .fillinBlack + } + func layoutNavigaionBar() { + self.view.add(navigationBar) { + self.navigationBar.popViewController = { + self.navigationController?.popViewController(animated: true) + } + $0.snp.makeConstraints { make in + make.top.equalTo(self.view.safeAreaLayoutGuide.snp.top) + make.leading.trailing.equalToSuperview() + make.height.equalTo(50) + } } - - - /* - // MARK: - Navigation - - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destination. - // Pass the selected object to the new view controller. + } + func layoutTitleLabel() { + self.view.add(titleLabel) { + $0.setupLabel(text: "필름 제보", + color: .fillinWhite, + font: .subhead3) + $0.snp.makeConstraints { make in + make.top.equalTo(self.navigationBar.snp.bottom).offset(24) + make.leading.equalToSuperview().offset(18) + } } - */ - + } + func layoutReportTextView() { + self.view.add(reportTextView) { + $0.autocorrectionType = .no + $0.autocapitalizationType = .none + $0.backgroundColor = .textviewGrey + $0.textContainerInset = UIEdgeInsets(top: 18, left: 18, bottom: 18, right: 18) + $0.font = .body2 + $0.text = "찰칵찰칵 필린이님만 아는 필름 정보가 있다면 필린\n에게도 제보해주세요! 필린님의 소중한 제보가 필린\n을 성장하게 합니다." + $0.textColor = .grey2 + $0.snp.makeConstraints { make in + make.top.equalTo(self.titleLabel.snp.bottom).offset(15) + make.centerX.equalToSuperview() + make.leading.equalToSuperview().offset(18) + make.height.equalTo(185) + } + } + } + func layoutSendButton() { + self.view.add(sendButton) { + $0.setupButton(title: "보내기", + color: .grey4, + font: .headline, + backgroundColor: .textviewGrey, + state: .normal, + radius: 0) + $0.isUserInteractionEnabled = false + $0.addTarget(self, action: #selector(self.sendButtonClicked), for: .touchUpInside) + $0.snp.makeConstraints { make in + make.centerX.equalToSuperview() + make.leading.trailing.equalToSuperview() + make.bottom.equalToSuperview() + make.height.equalTo(80) + } + } + } + @objc func handleTap() { + reportTextView.resignFirstResponder() + } + @objc func sendButtonClicked() { + } +} +extension ReportContactViewController: UITextViewDelegate { + func textViewDidBeginEditing(_ textView: UITextView) { + if textView.textColor == UIColor.grey2 { + textView.text = nil + textView.textColor = UIColor.fillinWhite + } + } + + func textViewDidEndEditing(_ textView: UITextView) { + if textView.text.isEmpty { + textView.text = "찰칵찰칵 필린이님만 아는 현상소 정보가 있다면 필린에게도 제보해주세요! 필린님의 소중한 제보가 필린을 성장하게 합니다." + textView.textColor = UIColor.grey2 + } else { + //TextView에 내용 있을 때 버튼 활성화 + sendButton.setupButton(title: "보내기", + color: .fillinBlack, + font: .headline, + backgroundColor: .fillinRed, + state: .normal, + radius: 0) + sendButton.isUserInteractionEnabled = true + } + } } From d070a30067f38272dd8a1ba9a0f1950482e46ba5 Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Sun, 18 Sep 2022 00:46:00 +0900 Subject: [PATCH 17/28] =?UTF-8?q?[FEAT]=20#138=20-=20=EB=AC=B8=EC=9D=98/?= =?UTF-8?q?=EA=B1=B4=EC=9D=98=ED=95=98=EA=B8=B0=20=EB=B7=B0=20=EB=A0=88?= =?UTF-8?q?=EC=9D=B4=EC=95=84=EC=9B=83=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReportFilmViewController.swift | 138 +++++++++++++++--- 1 file changed, 121 insertions(+), 17 deletions(-) diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportFilmViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportFilmViewController.swift index 0a67f38..5240455 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportFilmViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportFilmViewController.swift @@ -2,28 +2,132 @@ // ReportFilmViewController.swift // Fillin-iOS // -// Created by 김지수 on 2022/09/11. +// Created by 김지수 on 2022/09/07. // import UIKit -class ReportFilmViewController: UIViewController { - - override func viewDidLoad() { - super.viewDidLoad() +import SnapKit +import Then - // Do any additional setup after loading the view. +// MARK: - ReportFilmViewController +class ReportFilmViewController: UIViewController { + + // MARK: - Components + let navigationBar = FilinNavigationBar() + let titleLabel = UILabel() + let reportTextView = UITextView() + let sendButton = UIButton() + + // MARK: - LifeCycle + override func viewDidLoad() { + super.viewDidLoad() + self.reportTextView.delegate = self + layout() + setUI() + let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.handleTap)) + tapRecognizer.numberOfTapsRequired = 1 + tapRecognizer.isEnabled = true + tapRecognizer.cancelsTouchesInView = false + self.view.addGestureRecognizer(tapRecognizer) + } +} +// MARK: - Extension +extension ReportFilmViewController { + func layout() { + layoutNavigaionBar() + layoutTitleLabel() + layoutReportTextView() + layoutSendButton() + } + func setUI() { + self.view.backgroundColor = .fillinBlack + } + func layoutNavigaionBar() { + self.view.add(navigationBar) { + self.navigationBar.popViewController = { + self.navigationController?.popViewController(animated: true) + } + $0.snp.makeConstraints { make in + make.top.equalTo(self.view.safeAreaLayoutGuide.snp.top) + make.leading.trailing.equalToSuperview() + make.height.equalTo(50) + } } - - - /* - // MARK: - Navigation - - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destination. - // Pass the selected object to the new view controller. + } + func layoutTitleLabel() { + self.view.add(titleLabel) { + $0.setupLabel(text: "문의/건의", + color: .fillinWhite, + font: .subhead3) + $0.snp.makeConstraints { make in + make.top.equalTo(self.navigationBar.snp.bottom).offset(24) + make.leading.equalToSuperview().offset(18) + } } - */ - + } + func layoutReportTextView() { + self.view.add(reportTextView) { + $0.autocorrectionType = .no + $0.autocapitalizationType = .none + $0.backgroundColor = .textviewGrey + $0.textContainerInset = UIEdgeInsets(top: 18, left: 18, bottom: 18, right: 18) + $0.font = .body2 + $0.text = "서비스를 사용하면서 생긴 문의/건의 내용을 입력해\n주세요. 필린님의 소중한 의견이 필린을 성장하게 합\n니다." + $0.textColor = .grey2 + $0.snp.makeConstraints { make in + make.top.equalTo(self.titleLabel.snp.bottom).offset(15) + make.centerX.equalToSuperview() + make.leading.equalToSuperview().offset(18) + make.height.equalTo(185) + } + } + } + func layoutSendButton() { + self.view.add(sendButton) { + $0.setupButton(title: "보내기", + color: .grey4, + font: .headline, + backgroundColor: .textviewGrey, + state: .normal, + radius: 0) + $0.isUserInteractionEnabled = false + $0.addTarget(self, action: #selector(self.sendButtonClicked), for: .touchUpInside) + $0.snp.makeConstraints { make in + make.centerX.equalToSuperview() + make.leading.trailing.equalToSuperview() + make.bottom.equalToSuperview() + make.height.equalTo(80) + } + } + } + @objc func handleTap() { + reportTextView.resignFirstResponder() + } + @objc func sendButtonClicked() { + } +} +extension ReportFilmViewController: UITextViewDelegate { + func textViewDidBeginEditing(_ textView: UITextView) { + if textView.textColor == UIColor.grey2 { + textView.text = nil + textView.textColor = UIColor.fillinWhite + } + } + + func textViewDidEndEditing(_ textView: UITextView) { + if textView.text.isEmpty { + textView.text = "서비스를 사용하면서 생긴 문의/건의 내용을 입력해\n주세요. 필린님의 소중한 의견이 필린을 성장하게 합\n니다." + textView.textColor = UIColor.grey2 + } else { + //TextView에 내용 있을 때 버튼 활성화 + sendButton.setupButton(title: "보내기", + color: .fillinBlack, + font: .headline, + backgroundColor: .fillinRed, + state: .normal, + radius: 0) + sendButton.isUserInteractionEnabled = true + } + } } From 2892aed4ada4dd463000ff38b21bf5ef25335714 Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Sun, 18 Sep 2022 00:48:52 +0900 Subject: [PATCH 18/28] =?UTF-8?q?[FIX]=20#138=20-=20TextView=20=ED=85=8D?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=A4=84=EB=B0=94=EA=BF=88=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 --- .../ReportViewController/ReportContactViewController.swift | 4 ++-- .../ReportViewController/ReportFilmViewController.swift | 4 ++-- .../ReportViewController/ReportlabViewController.swift | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportContactViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportContactViewController.swift index 0c4ae61..a01d59d 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportContactViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportContactViewController.swift @@ -73,7 +73,7 @@ extension ReportContactViewController { $0.backgroundColor = .textviewGrey $0.textContainerInset = UIEdgeInsets(top: 18, left: 18, bottom: 18, right: 18) $0.font = .body2 - $0.text = "찰칵찰칵 필린이님만 아는 필름 정보가 있다면 필린\n에게도 제보해주세요! 필린님의 소중한 제보가 필린\n을 성장하게 합니다." + $0.text = "찰칵찰칵 필린이님만 아는 필름 정보가 있다면 필린에게도 제보해주세요! 필린님의 소중한 제보가 필린을 성장하게 합니다." $0.textColor = .grey2 $0.snp.makeConstraints { make in make.top.equalTo(self.titleLabel.snp.bottom).offset(15) @@ -117,7 +117,7 @@ extension ReportContactViewController: UITextViewDelegate { func textViewDidEndEditing(_ textView: UITextView) { if textView.text.isEmpty { - textView.text = "찰칵찰칵 필린이님만 아는 현상소 정보가 있다면 필린에게도 제보해주세요! 필린님의 소중한 제보가 필린을 성장하게 합니다." + textView.text = "찰칵찰칵 필린이님만 아는 필름 정보가 있다면 필린에게도 제보해주세요! 필린님의 소중한 제보가 필린을 성장하게 합니다." textView.textColor = UIColor.grey2 } else { //TextView에 내용 있을 때 버튼 활성화 diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportFilmViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportFilmViewController.swift index 5240455..800adb7 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportFilmViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportFilmViewController.swift @@ -73,7 +73,7 @@ extension ReportFilmViewController { $0.backgroundColor = .textviewGrey $0.textContainerInset = UIEdgeInsets(top: 18, left: 18, bottom: 18, right: 18) $0.font = .body2 - $0.text = "서비스를 사용하면서 생긴 문의/건의 내용을 입력해\n주세요. 필린님의 소중한 의견이 필린을 성장하게 합\n니다." + $0.text = "서비스를 사용하면서 생긴 문의/건의 내용을 입력해주세요. 필린님의 소중한 의견이 필린을 성장하게 합니다." $0.textColor = .grey2 $0.snp.makeConstraints { make in make.top.equalTo(self.titleLabel.snp.bottom).offset(15) @@ -117,7 +117,7 @@ extension ReportFilmViewController: UITextViewDelegate { func textViewDidEndEditing(_ textView: UITextView) { if textView.text.isEmpty { - textView.text = "서비스를 사용하면서 생긴 문의/건의 내용을 입력해\n주세요. 필린님의 소중한 의견이 필린을 성장하게 합\n니다." + textView.text = "서비스를 사용하면서 생긴 문의/건의 내용을 입력해주세요. 필린님의 소중한 의견이 필린을 성장하게 합니다." textView.textColor = UIColor.grey2 } else { //TextView에 내용 있을 때 버튼 활성화 diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift index a6beaea..26fb88b 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift @@ -73,7 +73,7 @@ extension ReportlabViewController { $0.backgroundColor = .textviewGrey $0.textContainerInset = UIEdgeInsets(top: 18, left: 18, bottom: 18, right: 18) $0.font = .body2 - $0.text = "찰칵찰칵 필린이님만 아는 현상소 정보가 있다면 필린\n에게도 제보해주세요! 필린님의 소중한 제보가 필린\n을 성장하게 합니다." + $0.text = "찰칵찰칵 필린이님만 아는 현상소 정보가 있다면 필린에게도 제보해주세요! 필린님의 소중한 제보가 필린을 성장하게 합니다." $0.textColor = .grey2 $0.snp.makeConstraints { make in make.top.equalTo(self.titleLabel.snp.bottom).offset(15) @@ -117,7 +117,7 @@ extension ReportlabViewController: UITextViewDelegate { func textViewDidEndEditing(_ textView: UITextView) { if textView.text.isEmpty { - textView.text = "찰칵찰칵 필린이님만 아는 현상소 정보가 있다면 필린에게도 제보해주세요! 필린님의 소중한 제보가 필린을 성장하게 합니다." + textView.text = "찰칵찰칵 필린이님만 아는 필름 정보가 있다면 필린에게도 제보해주세요! 필린님의 소중한 제보가 필린을 성장하게 합니다." textView.textColor = UIColor.grey2 } else { //TextView에 내용 있을 때 버튼 활성화 From 6000612d55064804a1620752d095bd7a651268cd Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Sun, 18 Sep 2022 01:00:13 +0900 Subject: [PATCH 19/28] =?UTF-8?q?[ADD]=20#138=20-=20=20=EC=A0=9C=EB=B3=B4?= =?UTF-8?q?=ED=95=98=EA=B8=B0=20=EB=A9=94=EC=9D=B8=EB=B7=B0,=20=EB=94=94?= =?UTF-8?q?=ED=85=8C=EC=9D=BC=20=EB=B7=B0=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReportViewController.swift | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift index d0be946..7472097 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift @@ -34,6 +34,18 @@ class ReportViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() layout() + // 필름제보 탭 클릭 시 + let filmTapRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.handleFilmTap)) + filmTapRecognizer.numberOfTapsRequired = 1 + filmTapRecognizer.isEnabled = true + filmTapRecognizer.cancelsTouchesInView = false + self.filmreportView.addGestureRecognizer(filmTapRecognizer) + // 현상소 제보 탭 클릭 시 + let labTapRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.handleLabTap)) + labTapRecognizer.numberOfTapsRequired = 1 + labTapRecognizer.isEnabled = true + labTapRecognizer.cancelsTouchesInView = false + self.shopreportView.addGestureRecognizer(labTapRecognizer) } } // MARK: - Extension @@ -181,6 +193,7 @@ extension ReportViewController { func layoutExtraReportButton() { self.view.add(extrareportButton) { $0.setupButton(title: "기타 문의/건의", color: .grey2, font: .body1, backgroundColor: .clear, state: .normal, radius: 0) + $0.addTarget(self, action: #selector(self.extraReportButtonClicked), for: .touchUpInside) $0.snp.makeConstraints { make in make.top.equalTo(self.containerView.snp.bottom).offset(18) make.leading.equalToSuperview().offset(18) @@ -209,4 +222,13 @@ extension ReportViewController { } } } + @objc func handleFilmTap() { + self.navigationController?.pushViewController(ReportFilmViewController(), animated: false) + } + @objc func handleLabTap() { + self.navigationController?.pushViewController(ReportlabViewController(), animated: false) + } + @objc func extraReportButtonClicked() { + self.navigationController?.pushViewController(ReportContactViewController(), animated: false) + } } From 4609c7767a52287e7480dae904d80a20792ca9f9 Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Sun, 18 Sep 2022 01:03:02 +0900 Subject: [PATCH 20/28] =?UTF-8?q?[FIX]=20#138=20-=20=EC=A0=9C=EB=B3=B4?= =?UTF-8?q?=ED=95=98=EA=B8=B0=20=EB=94=94=ED=85=8C=EC=9D=BC=20=EB=B7=B0=20?= =?UTF-8?q?=ED=83=80=EC=9D=B4=ED=8B=80,=20TextView=20=EA=B8=80=EC=9E=90=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReportViewController/ReportContactViewController.swift | 6 +++--- .../ReportViewController/ReportFilmViewController.swift | 6 +++--- .../ReportViewController/ReportlabViewController.swift | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportContactViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportContactViewController.swift index a01d59d..bfb5119 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportContactViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportContactViewController.swift @@ -57,7 +57,7 @@ extension ReportContactViewController { } func layoutTitleLabel() { self.view.add(titleLabel) { - $0.setupLabel(text: "필름 제보", + $0.setupLabel(text: "문의/건의", color: .fillinWhite, font: .subhead3) $0.snp.makeConstraints { make in @@ -73,7 +73,7 @@ extension ReportContactViewController { $0.backgroundColor = .textviewGrey $0.textContainerInset = UIEdgeInsets(top: 18, left: 18, bottom: 18, right: 18) $0.font = .body2 - $0.text = "찰칵찰칵 필린이님만 아는 필름 정보가 있다면 필린에게도 제보해주세요! 필린님의 소중한 제보가 필린을 성장하게 합니다." + $0.text = "서비스를 사용하면서 생긴 문의/건의 내용을 입력해주세요. 필린님의 소중한 의견이 필린을 성장하게 합니다." $0.textColor = .grey2 $0.snp.makeConstraints { make in make.top.equalTo(self.titleLabel.snp.bottom).offset(15) @@ -117,7 +117,7 @@ extension ReportContactViewController: UITextViewDelegate { func textViewDidEndEditing(_ textView: UITextView) { if textView.text.isEmpty { - textView.text = "찰칵찰칵 필린이님만 아는 필름 정보가 있다면 필린에게도 제보해주세요! 필린님의 소중한 제보가 필린을 성장하게 합니다." + textView.text = "서비스를 사용하면서 생긴 문의/건의 내용을 입력해주세요. 필린님의 소중한 의견이 필린을 성장하게 합니다." textView.textColor = UIColor.grey2 } else { //TextView에 내용 있을 때 버튼 활성화 diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportFilmViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportFilmViewController.swift index 800adb7..31efc1b 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportFilmViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportFilmViewController.swift @@ -57,7 +57,7 @@ extension ReportFilmViewController { } func layoutTitleLabel() { self.view.add(titleLabel) { - $0.setupLabel(text: "문의/건의", + $0.setupLabel(text: "필름 제보", color: .fillinWhite, font: .subhead3) $0.snp.makeConstraints { make in @@ -73,7 +73,7 @@ extension ReportFilmViewController { $0.backgroundColor = .textviewGrey $0.textContainerInset = UIEdgeInsets(top: 18, left: 18, bottom: 18, right: 18) $0.font = .body2 - $0.text = "서비스를 사용하면서 생긴 문의/건의 내용을 입력해주세요. 필린님의 소중한 의견이 필린을 성장하게 합니다." + $0.text = "찰칵찰칵 필린이님만 아는 필름 정보가 있다면 필린에게도 제보해주세요! 필린님의 소중한 제보가 필린을 성장하게 합니다." $0.textColor = .grey2 $0.snp.makeConstraints { make in make.top.equalTo(self.titleLabel.snp.bottom).offset(15) @@ -117,7 +117,7 @@ extension ReportFilmViewController: UITextViewDelegate { func textViewDidEndEditing(_ textView: UITextView) { if textView.text.isEmpty { - textView.text = "서비스를 사용하면서 생긴 문의/건의 내용을 입력해주세요. 필린님의 소중한 의견이 필린을 성장하게 합니다." + textView.text = "찰칵찰칵 필린이님만 아는 필름 정보가 있다면 필린에게도 제보해주세요! 필린님의 소중한 제보가 필린을 성장하게 합니다." textView.textColor = UIColor.grey2 } else { //TextView에 내용 있을 때 버튼 활성화 diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift index 26fb88b..29f6bba 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift @@ -117,7 +117,7 @@ extension ReportlabViewController: UITextViewDelegate { func textViewDidEndEditing(_ textView: UITextView) { if textView.text.isEmpty { - textView.text = "찰칵찰칵 필린이님만 아는 필름 정보가 있다면 필린에게도 제보해주세요! 필린님의 소중한 제보가 필린을 성장하게 합니다." + textView.text = "찰칵찰칵 필린이님만 아는 현상소 정보가 있다면 필린에게도 제보해주세요! 필린님의 소중한 제보가 필린을 성장하게 합니다." textView.textColor = UIColor.grey2 } else { //TextView에 내용 있을 때 버튼 활성화 From a37e83101ab540c3b5d1cfe6f3a812bae22ba27a Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Sun, 18 Sep 2022 01:04:57 +0900 Subject: [PATCH 21/28] =?UTF-8?q?[FIX]=20#138=20-=20HomeVC=20=EC=97=90?= =?UTF-8?q?=EC=84=9C=20MyPageVC=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HomeViewController/HomeViewController.swift | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/HomeViewController/HomeViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/HomeViewController/HomeViewController.swift index 2d48a14..0d052d7 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/HomeViewController/HomeViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/HomeViewController/HomeViewController.swift @@ -112,8 +112,7 @@ extension HomeViewController: UITableViewDataSource { } tabBarCell.pushToMyPageViewController = { -// self.navigationController?.pushViewController(MyPageViewController(), animated: true) - self.navigationController?.pushViewController(ReportlabViewController(), animated: true) + self.navigationController?.pushViewController(MyPageViewController(), animated: true) } return tabBarCell case 2 : From a22a9465a6f4813657b16d3769e4b4fd5145f528 Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Sun, 18 Sep 2022 01:23:03 +0900 Subject: [PATCH 22/28] =?UTF-8?q?[FIX]=20#138-=20SceneDelegate=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 --- .../Fillin-iOS/Sources/SceneDelegate.swift | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/Fillin-iOS/Fillin-iOS/Sources/SceneDelegate.swift b/Fillin-iOS/Fillin-iOS/Sources/SceneDelegate.swift index 18e6636..5dad1b7 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/SceneDelegate.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/SceneDelegate.swift @@ -23,22 +23,22 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { window?.rootViewController = SplashViewController() window?.makeKeyAndVisible() - DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { - var homeNavigationController: UINavigationController - - if self.appDelegate?.isLogin == true { - homeNavigationController = UINavigationController(rootViewController: HomeViewController()) - } else { - if UserDefaults.standard.object(forKey: Const.UserDefaultsKey.isOnboarding) != nil { - homeNavigationController = UINavigationController(rootViewController: HomeViewController()) - } else { - homeNavigationController = UINavigationController(rootViewController: HomeViewController()) - } - } - self.window?.rootViewController = homeNavigationController - self.window?.makeKeyAndVisible() - } - } + DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { + var homeNavigationController: UINavigationController + + if self.appDelegate?.isLogin == true { + homeNavigationController = UINavigationController(rootViewController: HomeViewController()) + } else { + if UserDefaults.standard.object(forKey: Const.UserDefaultsKey.isOnboarding) != nil { + homeNavigationController = UINavigationController(rootViewController: LoginViewController()) + } else { + homeNavigationController = UINavigationController(rootViewController: OnboardingViewController()) + } + } + self.window?.rootViewController = homeNavigationController + self.window?.makeKeyAndVisible() + } + } func sceneDidDisconnect(_ scene: UIScene) { // Called as the scene is being released by the system. From d6ad3125b13774fc2cc9fb80c1f536b26ecda626 Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Sun, 18 Sep 2022 01:27:05 +0900 Subject: [PATCH 23/28] =?UTF-8?q?[FIX]=20#138=20-=20TapGestureRecognizer?= =?UTF-8?q?=20=ED=95=A8=EC=88=98=EB=A1=9C=20=EB=B9=BC=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReportContactViewController.swift | 13 ++++---- .../ReportFilmViewController.swift | 13 ++++---- .../ReportViewController.swift | 30 +++++++++++-------- .../ReportlabViewController.swift | 13 ++++---- 4 files changed, 42 insertions(+), 27 deletions(-) diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportContactViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportContactViewController.swift index bfb5119..48674a8 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportContactViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportContactViewController.swift @@ -25,11 +25,7 @@ class ReportContactViewController: UIViewController { self.reportTextView.delegate = self layout() setUI() - let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.handleTap)) - tapRecognizer.numberOfTapsRequired = 1 - tapRecognizer.isEnabled = true - tapRecognizer.cancelsTouchesInView = false - self.view.addGestureRecognizer(tapRecognizer) + tapRecognizer() } } // MARK: - Extension @@ -101,6 +97,13 @@ extension ReportContactViewController { } } } + func tapRecognizer() { + let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.handleTap)) + tapRecognizer.numberOfTapsRequired = 1 + tapRecognizer.isEnabled = true + tapRecognizer.cancelsTouchesInView = false + self.view.addGestureRecognizer(tapRecognizer) + } @objc func handleTap() { reportTextView.resignFirstResponder() } diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportFilmViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportFilmViewController.swift index 31efc1b..81c5a20 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportFilmViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportFilmViewController.swift @@ -25,11 +25,7 @@ class ReportFilmViewController: UIViewController { self.reportTextView.delegate = self layout() setUI() - let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.handleTap)) - tapRecognizer.numberOfTapsRequired = 1 - tapRecognizer.isEnabled = true - tapRecognizer.cancelsTouchesInView = false - self.view.addGestureRecognizer(tapRecognizer) + tapRecognizer() } } // MARK: - Extension @@ -101,6 +97,13 @@ extension ReportFilmViewController { } } } + func tapRecognizer() { + let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.handleTap)) + tapRecognizer.numberOfTapsRequired = 1 + tapRecognizer.isEnabled = true + tapRecognizer.cancelsTouchesInView = false + self.view.addGestureRecognizer(tapRecognizer) + } @objc func handleTap() { reportTextView.resignFirstResponder() } diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift index 7472097..287690e 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift @@ -34,18 +34,8 @@ class ReportViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() layout() - // 필름제보 탭 클릭 시 - let filmTapRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.handleFilmTap)) - filmTapRecognizer.numberOfTapsRequired = 1 - filmTapRecognizer.isEnabled = true - filmTapRecognizer.cancelsTouchesInView = false - self.filmreportView.addGestureRecognizer(filmTapRecognizer) - // 현상소 제보 탭 클릭 시 - let labTapRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.handleLabTap)) - labTapRecognizer.numberOfTapsRequired = 1 - labTapRecognizer.isEnabled = true - labTapRecognizer.cancelsTouchesInView = false - self.shopreportView.addGestureRecognizer(labTapRecognizer) + filmTapRecognizer() + labTapRecognizer() } } // MARK: - Extension @@ -222,6 +212,22 @@ extension ReportViewController { } } } + func filmTapRecognizer() { + // 필름제보 탭 클릭 시 + let filmTapRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.handleFilmTap)) + filmTapRecognizer.numberOfTapsRequired = 1 + filmTapRecognizer.isEnabled = true + filmTapRecognizer.cancelsTouchesInView = false + self.filmreportView.addGestureRecognizer(filmTapRecognizer) + } + func labTapRecognizer() { + // 현상소 제보 탭 클릭 시 + let labTapRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.handleLabTap)) + labTapRecognizer.numberOfTapsRequired = 1 + labTapRecognizer.isEnabled = true + labTapRecognizer.cancelsTouchesInView = false + self.shopreportView.addGestureRecognizer(labTapRecognizer) + } @objc func handleFilmTap() { self.navigationController?.pushViewController(ReportFilmViewController(), animated: false) } diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift index 29f6bba..516ac46 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportlabViewController.swift @@ -25,11 +25,7 @@ class ReportlabViewController: UIViewController { self.reportTextView.delegate = self layout() setUI() - let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.handleTap)) - tapRecognizer.numberOfTapsRequired = 1 - tapRecognizer.isEnabled = true - tapRecognizer.cancelsTouchesInView = false - self.view.addGestureRecognizer(tapRecognizer) + tapRecognizer() } } // MARK: - Extension @@ -101,6 +97,13 @@ extension ReportlabViewController { } } } + func tapRecognizer() { + let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.handleTap)) + tapRecognizer.numberOfTapsRequired = 1 + tapRecognizer.isEnabled = true + tapRecognizer.cancelsTouchesInView = false + self.view.addGestureRecognizer(tapRecognizer) + } @objc func handleTap() { reportTextView.resignFirstResponder() } From 5d4b4b2f0eae2b8f249b245e8c0523cc7c117a8b Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Sat, 24 Sep 2022 15:48:34 +0900 Subject: [PATCH 24/28] =?UTF-8?q?[FEAT]=20-=20#141=20=EC=A0=9C=EB=B3=B4?= =?UTF-8?q?=ED=95=98=EA=B8=B0=20=ED=8C=9D=EC=97=85=20=EB=B7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Fillin-iOS.xcodeproj/project.pbxproj | 4 + .../ReportPopUpViewController.swift | 114 ++++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportPopUpViewController.swift diff --git a/Fillin-iOS/Fillin-iOS.xcodeproj/project.pbxproj b/Fillin-iOS/Fillin-iOS.xcodeproj/project.pbxproj index 00f2578..8a42002 100644 --- a/Fillin-iOS/Fillin-iOS.xcodeproj/project.pbxproj +++ b/Fillin-iOS/Fillin-iOS.xcodeproj/project.pbxproj @@ -125,6 +125,7 @@ E89934F727CD1EDE00DCB1A8 /* OnboardingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E89934F627CD1EDE00DCB1A8 /* OnboardingViewController.swift */; }; E89934FA27CD2AA600DCB1A8 /* OnboardingDataModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E89934F927CD2AA600DCB1A8 /* OnboardingDataModel.swift */; }; E89934FD27CD2BCB00DCB1A8 /* OnboardingCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E89934FC27CD2BCB00DCB1A8 /* OnboardingCollectionViewCell.swift */; }; + E8DDE18528DEDECF00CC000D /* ReportPopUpViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8DDE18428DEDECF00CC000D /* ReportPopUpViewController.swift */; }; E8EB7A5628C090AB0091DA22 /* TermsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8EB7A5528C090AB0091DA22 /* TermsViewController.swift */; }; E8EB7A5828C093080091DA22 /* TermTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8EB7A5728C093080091DA22 /* TermTableViewCell.swift */; }; /* End PBXBuildFile section */ @@ -252,6 +253,7 @@ E89934F627CD1EDE00DCB1A8 /* OnboardingViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingViewController.swift; sourceTree = ""; }; E89934F927CD2AA600DCB1A8 /* OnboardingDataModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingDataModel.swift; sourceTree = ""; }; E89934FC27CD2BCB00DCB1A8 /* OnboardingCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingCollectionViewCell.swift; sourceTree = ""; }; + E8DDE18428DEDECF00CC000D /* ReportPopUpViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportPopUpViewController.swift; sourceTree = ""; }; E8EB7A5528C090AB0091DA22 /* TermsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TermsViewController.swift; sourceTree = ""; }; E8EB7A5728C093080091DA22 /* TermTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TermTableViewCell.swift; sourceTree = ""; }; F33300C623DFF466AFCE2914 /* Pods_Fillin_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Fillin_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -844,6 +846,7 @@ E822163628C860E10090CEC5 /* ReportlabViewController.swift */, E80A726928CDDA7E000A75B5 /* ReportContactViewController.swift */, E80A726728CDDA66000A75B5 /* ReportFilmViewController.swift */, + E8DDE18428DEDECF00CC000D /* ReportPopUpViewController.swift */, ); path = ReportViewController; sourceTree = ""; @@ -1083,6 +1086,7 @@ 6F3B87A327968AEB00A4BD07 /* MyPageViewController.swift in Sources */, E89934F727CD1EDE00DCB1A8 /* OnboardingViewController.swift in Sources */, 6F3B878A27968AEB00A4BD07 /* HomeService.swift in Sources */, + E8DDE18528DEDECF00CC000D /* ReportPopUpViewController.swift in Sources */, 6F3B87B227968AEB00A4BD07 /* FilmRollViewController.swift in Sources */, 6F3B877227968AEB00A4BD07 /* UserDefaultsKey.swift in Sources */, E828BF9127991C14009C1475 /* Status.swift in Sources */, diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportPopUpViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportPopUpViewController.swift new file mode 100644 index 0000000..9b19cb7 --- /dev/null +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportPopUpViewController.swift @@ -0,0 +1,114 @@ +// +// ReportPopUpViewController.swift +// Fillin-iOS +// +// Created by 김지수 on 2022/09/24. +// + +import UIKit + +import SnapKit +import Then + +// MARK: - ReportPopUpViewController +class ReportPopUpViewController: UIViewController { + + // MARK: - Components + let dimmedBackView = UIView() + let backgroundView = UIView() + let deleteButton = UIButton() + let explainLabel = UILabel() + let subexplainLabel = UILabel() + let checkmarkIcon = UIImageView() + + // MARK: - LifeCycle + override func viewDidLoad() { + super.viewDidLoad() + layout() + } +} +// MARK: - Extension +extension ReportPopUpViewController { + func layout() { + layoutDimmedView() + layoutBackgroundView() + layoutDeleteButton() + layoutExplainLabel() + layoutSubExplainLabel() + layoutCheckmarkIcon() + } + func layoutDimmedView() { + view.add(dimmedBackView) { + $0.backgroundColor = .backgroundCover + $0.snp.makeConstraints { + $0.top.leading.trailing.bottom.equalToSuperview() + } + } + } + func layoutBackgroundView() { + view.add(backgroundView) { + $0.backgroundColor = .textviewGrey + $0.snp.makeConstraints { + $0.top.equalToSuperview().offset(256) + $0.centerX.equalToSuperview() + $0.leading.equalToSuperview().offset(18) + $0.height.equalTo(300) + } + } + } + func layoutDeleteButton() { + backgroundView.add(deleteButton) { + $0.setImage(UIImage(asset: Asset.icnClosewhite), for: .normal) + $0.addTarget(self, action: #selector(self.touchDeleteButton), for: .touchUpInside) + $0.snp.makeConstraints { + $0.top.equalToSuperview().offset(14) + $0.trailing.equalToSuperview().offset(-14) + $0.width.equalTo(24) + $0.height.equalTo(24) + } + } + } + func layoutExplainLabel() { + backgroundView.add(explainLabel) { + $0.setupLabel(text: "소중한 의견이 접수되었어요!", + color: .white, + font: .body3) + $0.snp.makeConstraints { + $0.top.equalTo(self.backgroundView.snp.top).offset(56) + $0.centerX.equalTo(self.backgroundView.snp.centerX) + } + } + } + func layoutSubExplainLabel() { + backgroundView.add(subexplainLabel) { + $0.setupLabel(text: "필린에서 최대한 빠르게 반영해둘게요!", + color: .grey2, + font: .body2) + $0.numberOfLines = 2 + $0.textAlignment = .center + $0.snp.makeConstraints { + $0.top.equalTo(self.explainLabel.snp.bottom).offset(12) + $0.centerX.equalToSuperview() + } + } + } + func layoutCheckmarkIcon() { + backgroundView.add(checkmarkIcon) { + $0.image = UIImage(asset: Asset.imgPhoto) + $0.snp.makeConstraints { + $0.top.equalTo(self.subexplainLabel.snp.bottom).offset(41) + $0.centerX.equalToSuperview() + $0.width.equalTo(88) + $0.height.equalTo(88) + } + } + } + @objc func touchDeleteButton() { + // 현재 올라와있는 모달을 dismiss 하고 원래VC 로 Push 하는 코드 + guard let parentVC = presentingViewController as? UINavigationController else { return } + dismiss(animated: true) { + parentVC.popViewController(animated: true) + } + } +} + From 474ce59930fbbf41e2efda7f39a7e89246ff0efb Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Sat, 24 Sep 2022 15:51:16 +0900 Subject: [PATCH 25/28] =?UTF-8?q?[ADD]=20-=20#141=20=EC=A0=9C=EB=B3=B4?= =?UTF-8?q?=ED=95=98=EA=B8=B0=20=EC=95=84=EC=9D=B4=EC=BD=98=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../img_feedback.imageset/Contents.json | 23 ++++++++++++++++++ .../img_feedback.imageset/img_feedback.png | Bin 0 -> 2665 bytes .../img_feedback.imageset/img_feedback@2x.png | Bin 0 -> 5938 bytes .../img_feedback.imageset/img_feedback@3x.png | Bin 0 -> 7709 bytes .../Constants/Assets+Generated.swift | 1 + .../ReportPopUpViewController.swift | 2 +- 6 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/img_feedback.imageset/Contents.json create mode 100644 Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/img_feedback.imageset/img_feedback.png create mode 100644 Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/img_feedback.imageset/img_feedback@2x.png create mode 100644 Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/img_feedback.imageset/img_feedback@3x.png diff --git a/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/img_feedback.imageset/Contents.json b/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/img_feedback.imageset/Contents.json new file mode 100644 index 0000000..a2ecf96 --- /dev/null +++ b/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/img_feedback.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "img_feedback.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "img_feedback@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "img_feedback@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/img_feedback.imageset/img_feedback.png b/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/img_feedback.imageset/img_feedback.png new file mode 100644 index 0000000000000000000000000000000000000000..5adc0937c5d21e07cbb2bfdaf67e6534eac52546 GIT binary patch literal 2665 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 GfA&8L%I_us literal 0 HcmV?d00001 diff --git a/Fillin-iOS/Fillin-iOS/Resources/Constants/Assets+Generated.swift b/Fillin-iOS/Fillin-iOS/Resources/Constants/Assets+Generated.swift index b9af8d1..12541e6 100644 --- a/Fillin-iOS/Fillin-iOS/Resources/Constants/Assets+Generated.swift +++ b/Fillin-iOS/Fillin-iOS/Resources/Constants/Assets+Generated.swift @@ -68,6 +68,7 @@ internal enum Asset { internal static let imgOnboardingDot3 = ImageAsset(name: "imgOnboardingDot3") internal static let imgPhoto = ImageAsset(name: "imgPhoto") internal static let imgTrash = ImageAsset(name: "imgTrash") + internal static let imgFeedback = ImageAsset(name: "img_feedback") internal static let imgonboarding1frame = ImageAsset(name: "imgonboarding1frame") internal static let imgonboarding2frame = ImageAsset(name: "imgonboarding2frame") internal static let imgonboarding3frame = ImageAsset(name: "imgonboarding3frame") diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportPopUpViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportPopUpViewController.swift index 9b19cb7..5a75508 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportPopUpViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportPopUpViewController.swift @@ -94,7 +94,7 @@ extension ReportPopUpViewController { } func layoutCheckmarkIcon() { backgroundView.add(checkmarkIcon) { - $0.image = UIImage(asset: Asset.imgPhoto) + $0.image = UIImage(asset: Asset.imgFeedback) $0.snp.makeConstraints { $0.top.equalTo(self.subexplainLabel.snp.bottom).offset(41) $0.centerX.equalToSuperview() From 16a6ce4d76d4404955904e483664f88aa4ac50b2 Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Mon, 26 Sep 2022 23:35:35 +0900 Subject: [PATCH 26/28] =?UTF-8?q?[FIX]=20$0.image=20UIImage=EC=97=90?= =?UTF-8?q?=EC=84=9C=20Asset=20=EC=9C=BC=EB=A1=9C=20=EC=9D=BC=EA=B4=84=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FirstAddPhotoPopUpViewController.swift | 2 +- .../SecondAddPhotoPopUpViewController.swift | 2 +- .../AddPhotoViewController/AddPhotoViewController.swift | 2 +- .../LoginViewController/LoginViewController.swift | 2 +- .../MyPageViewController/MyPageViewController.swift | 2 +- .../Cell/OnboardingCollectionViewCell.swift | 2 +- .../ReportViewController/ReportPopUpViewController.swift | 4 ++-- .../ReportViewController/ReportViewController.swift | 4 ++-- .../StudioMapSearchViewController.swift | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/AddPhotoPopUpViewController/FirstAddPhotoPopUpViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/AddPhotoPopUpViewController/FirstAddPhotoPopUpViewController.swift index 3958a46..3cea788 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/AddPhotoPopUpViewController/FirstAddPhotoPopUpViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/AddPhotoPopUpViewController/FirstAddPhotoPopUpViewController.swift @@ -88,7 +88,7 @@ extension FirstAddPhotoPopUpViewController { } func layoutTrashIcon() { backgroundView.add(trashIcon) { - $0.image = UIImage(asset: Asset.imgtrashRed) + $0.image = Asset.imgtrashRed.image $0.snp.makeConstraints { $0.top.equalTo(self.subExplainLabel.snp.bottom).offset(24) $0.centerX.equalTo(self.backgroundView.snp.centerX) diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/AddPhotoPopUpViewController/SecondAddPhotoPopUpViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/AddPhotoPopUpViewController/SecondAddPhotoPopUpViewController.swift index 9ad1fa4..1b89d63 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/AddPhotoPopUpViewController/SecondAddPhotoPopUpViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/AddPhotoPopUpViewController/SecondAddPhotoPopUpViewController.swift @@ -95,7 +95,7 @@ extension SecondAddPhotoPopUpViewController { } func layoutCheckmarkIcon() { backgroundView.add(checkmarkIcon) { - $0.image = UIImage(asset: Asset.imgPhoto) + $0.image = Asset.imgPhoto.image $0.snp.makeConstraints { $0.top.equalTo(self.subexplainLabel.snp.bottom).offset(41) $0.centerX.equalToSuperview() diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/AddPhotoViewController/AddPhotoViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/AddPhotoViewController/AddPhotoViewController.swift index 0bf0d22..1cfabc7 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/AddPhotoViewController/AddPhotoViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/AddPhotoViewController/AddPhotoViewController.swift @@ -147,7 +147,7 @@ extension AddPhotoViewController { } func layoutPhotoBackgroundView() { addPhotoScrollContainerView.add(photobackgroundView) { - $0.image = UIImage(asset: Asset.photoInsert) + $0.image = Asset.photoInsert.image $0.snp.makeConstraints { $0.top.equalTo(self.addPhotoScrollContainerView.snp.top) $0.centerX.equalToSuperview() diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/LoginViewController/LoginViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/LoginViewController/LoginViewController.swift index 70f9ea0..b1053a7 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/LoginViewController/LoginViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/LoginViewController/LoginViewController.swift @@ -40,7 +40,7 @@ extension LoginViewController { } func layoutFillinLogoIcon() { view.add(fillinLogoIcon) { - $0.image = UIImage(asset: Asset.loginLogo) + $0.image = Asset.loginLogo.image $0.snp.makeConstraints { $0.top.equalTo(self.view.safeAreaLayoutGuide.snp.top).offset(60) $0.leading.equalToSuperview().offset(30) diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/MyPageViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/MyPageViewController.swift index b814da5..8fcb8a6 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/MyPageViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/MyPageViewController.swift @@ -112,7 +112,7 @@ extension MyPageViewController { mypageScrollContainverView.add(userImageview) { $0.setBorder(borderColor: .fillinWhite, borderWidth: 1) $0.setRounded(radius: 27.5) - $0.image = UIImage(asset: Asset.appleLogo) + $0.image = Asset.appleLogo.image $0.contentMode = .scaleAspectFill $0.clipsToBounds = true $0.snp.makeConstraints { diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/OnboardingViewController/Cell/OnboardingCollectionViewCell.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/OnboardingViewController/Cell/OnboardingCollectionViewCell.swift index 00ad4fa..c26a003 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/OnboardingViewController/Cell/OnboardingCollectionViewCell.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/OnboardingViewController/Cell/OnboardingCollectionViewCell.swift @@ -63,7 +63,7 @@ extension OnboardingCollectionViewCell { } func layoutOnboardingView() { self.contentView.add(onboardingView) { - $0.image = UIImage(named: "intro1") + $0.image = Asset.intro1.image $0.snp.makeConstraints { $0.top.equalTo(self.onboardingDescriptionLabel.snp.bottom).offset(67) $0.centerX.equalTo(self.contentView.snp.centerX) diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportPopUpViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportPopUpViewController.swift index 5a75508..eadbd04 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportPopUpViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportPopUpViewController.swift @@ -58,7 +58,7 @@ extension ReportPopUpViewController { } func layoutDeleteButton() { backgroundView.add(deleteButton) { - $0.setImage(UIImage(asset: Asset.icnClosewhite), for: .normal) + $0.setImage(Asset.icnClosewhite.image, for: .normal) $0.addTarget(self, action: #selector(self.touchDeleteButton), for: .touchUpInside) $0.snp.makeConstraints { $0.top.equalToSuperview().offset(14) @@ -94,7 +94,7 @@ extension ReportPopUpViewController { } func layoutCheckmarkIcon() { backgroundView.add(checkmarkIcon) { - $0.image = UIImage(asset: Asset.imgFeedback) + $0.image = Asset.imgFeedback.image $0.snp.makeConstraints { $0.top.equalTo(self.subexplainLabel.snp.bottom).offset(41) $0.centerX.equalToSuperview() diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift index 287690e..2687b8d 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/ReportViewController/ReportViewController.swift @@ -125,7 +125,7 @@ extension ReportViewController { } func layoutFilmReportImage() { self.filmreportContainerView.add(filmreportImage) { - $0.image = UIImage(asset: Asset.iconFilmroll) + $0.image = Asset.icnFilmRoll.image $0.snp.makeConstraints { make in make.top.leading.bottom.equalToSuperview() make.width.height.equalTo(24) @@ -163,7 +163,7 @@ extension ReportViewController { } func layoutShopReportImage() { self.shopreportContainerView.add(shopreportImage) { - $0.image = UIImage(asset: Asset.icnMap) + $0.image = Asset.icnMap.image $0.snp.makeConstraints { make in make.top.leading.bottom.equalToSuperview() make.width.height.equalTo(24) diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/StudioMapSearchViewController/StudioMapSearchViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/StudioMapSearchViewController/StudioMapSearchViewController.swift index 11c334a..b442e49 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/StudioMapSearchViewController/StudioMapSearchViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/StudioMapSearchViewController/StudioMapSearchViewController.swift @@ -138,7 +138,7 @@ class StudioMapSearchViewController: UIViewController { func changeEmptySearchView() { print("call") view.add(noSearchImageView) { - $0.image = UIImage(named: "noSearch") + $0.image = Asset.noSearch.image $0.snp.makeConstraints { $0.top.equalTo(self.searchPlaceTextField.snp.bottom).offset(135) $0.centerX.equalTo(self.view.snp.centerX) From 7b50cd0a07c126a50d89b0206643bf82d84f3375 Mon Sep 17 00:00:00 2001 From: KimJisoo Date: Mon, 3 Oct 2022 18:40:04 +0900 Subject: [PATCH 27/28] =?UTF-8?q?[FEAT]=20-=20#140=20=ED=94=84=EB=A1=9C?= =?UTF-8?q?=ED=95=84=20=EC=88=98=EC=A0=95=ED=95=98=EA=B8=B0=20=EB=B7=B0=20?= =?UTF-8?q?=EB=A0=88=EC=9D=B4=EC=95=84=EC=9B=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Fillin-iOS.xcodeproj/project.pbxproj | 4 + .../btnAddProfile.imageset/Contents.json | 23 ++ .../btn_add_profile.png | Bin 0 -> 2220 bytes .../btn_add_profile@2x.png | Bin 0 -> 4457 bytes .../btn_add_profile@3x.png | Bin 0 -> 6348 bytes .../btnClear.imageset/Contents.json | 23 ++ .../btnClear.imageset/btn_clear.png | Bin 0 -> 229 bytes .../btnClear.imageset/btn_clear@2x.png | Bin 0 -> 262 bytes .../btnClear.imageset/btn_clear@3x.png | Bin 0 -> 403 bytes .../Constants/Assets+Generated.swift | 2 + .../EditProfileViewController.swift | 271 ++++++++++++++++++ 11 files changed, 323 insertions(+) create mode 100644 Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnAddProfile.imageset/Contents.json create mode 100644 Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnAddProfile.imageset/btn_add_profile.png create mode 100644 Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnAddProfile.imageset/btn_add_profile@2x.png create mode 100644 Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnAddProfile.imageset/btn_add_profile@3x.png create mode 100644 Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnClear.imageset/Contents.json create mode 100644 Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnClear.imageset/btn_clear.png create mode 100644 Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnClear.imageset/btn_clear@2x.png create mode 100644 Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnClear.imageset/btn_clear@3x.png create mode 100644 Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/EditProfileViewController.swift diff --git a/Fillin-iOS/Fillin-iOS.xcodeproj/project.pbxproj b/Fillin-iOS/Fillin-iOS.xcodeproj/project.pbxproj index 8a42002..271b131 100644 --- a/Fillin-iOS/Fillin-iOS.xcodeproj/project.pbxproj +++ b/Fillin-iOS/Fillin-iOS.xcodeproj/project.pbxproj @@ -125,6 +125,7 @@ E89934F727CD1EDE00DCB1A8 /* OnboardingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E89934F627CD1EDE00DCB1A8 /* OnboardingViewController.swift */; }; E89934FA27CD2AA600DCB1A8 /* OnboardingDataModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E89934F927CD2AA600DCB1A8 /* OnboardingDataModel.swift */; }; E89934FD27CD2BCB00DCB1A8 /* OnboardingCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E89934FC27CD2BCB00DCB1A8 /* OnboardingCollectionViewCell.swift */; }; + E8C1E0D028EABCEB006AB2C7 /* EditProfileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8C1E0CF28EABCEB006AB2C7 /* EditProfileViewController.swift */; }; E8DDE18528DEDECF00CC000D /* ReportPopUpViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8DDE18428DEDECF00CC000D /* ReportPopUpViewController.swift */; }; E8EB7A5628C090AB0091DA22 /* TermsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8EB7A5528C090AB0091DA22 /* TermsViewController.swift */; }; E8EB7A5828C093080091DA22 /* TermTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8EB7A5728C093080091DA22 /* TermTableViewCell.swift */; }; @@ -253,6 +254,7 @@ E89934F627CD1EDE00DCB1A8 /* OnboardingViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingViewController.swift; sourceTree = ""; }; E89934F927CD2AA600DCB1A8 /* OnboardingDataModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingDataModel.swift; sourceTree = ""; }; E89934FC27CD2BCB00DCB1A8 /* OnboardingCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingCollectionViewCell.swift; sourceTree = ""; }; + E8C1E0CF28EABCEB006AB2C7 /* EditProfileViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileViewController.swift; sourceTree = ""; }; E8DDE18428DEDECF00CC000D /* ReportPopUpViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReportPopUpViewController.swift; sourceTree = ""; }; E8EB7A5528C090AB0091DA22 /* TermsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TermsViewController.swift; sourceTree = ""; }; E8EB7A5728C093080091DA22 /* TermTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TermTableViewCell.swift; sourceTree = ""; }; @@ -540,6 +542,7 @@ 6F3B872B27968AEB00A4BD07 /* MyPageViewController.swift */, E8EB7A5528C090AB0091DA22 /* TermsViewController.swift */, E8EB7A5728C093080091DA22 /* TermTableViewCell.swift */, + E8C1E0CF28EABCEB006AB2C7 /* EditProfileViewController.swift */, ); path = MyPageViewController; sourceTree = ""; @@ -1050,6 +1053,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + E8C1E0D028EABCEB006AB2C7 /* EditProfileViewController.swift in Sources */, 6F3B87CB27968AEB00A4BD07 /* LoginViewController.swift in Sources */, 6F3B878927968AEB00A4BD07 /* GenericResponse.swift in Sources */, 77EB42212797D17600C726D8 /* FlimSelectAPI.swift in Sources */, diff --git a/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnAddProfile.imageset/Contents.json b/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnAddProfile.imageset/Contents.json new file mode 100644 index 0000000..f032b41 --- /dev/null +++ b/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnAddProfile.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "btn_add_profile.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "btn_add_profile@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "btn_add_profile@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnAddProfile.imageset/btn_add_profile.png b/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnAddProfile.imageset/btn_add_profile.png new file mode 100644 index 0000000000000000000000000000000000000000..58754935cbb1d61b7273a62b77d0b90f2b3c788a GIT binary patch literal 2220 zcmV;d2vhfoP)wW2<7V z&{jmNwbK@-FXJDb*49?B(<-6WsjaPPrBu-RQfo_qRzkpFHoM#36I~i1KteWw^fR+2 zoBbv3m*@GtJTO3bqI%~0{fw0;=d#+*2F(^P%Q&Z)I1qD&7 z%2uXmH5w~P5|0xS=>arKMkSJWI1+h^dKtuRd-BPaHxC{92?dGrHER+;Y@9}Wnqb)_ zgiLk?`H9~md8f0iyT@L=XYaoA8#Zpdj6#GUc9J&kDT1b-@aMZei-bXiXPCFZdW)AV zvG~*9!~)#-l>>E#jC4bjKUVcgB)BI>k|*}<-|t+pa%Bq|WA@b6>KllET)Ok0@KT>j~eGI zW%6kQ`{$rO2`ibMHM?5ENg&XS?|1iedt2cC2VT3&k}ij1v9+_~x%l5r`2d9};I?V{ z8Gol`zb@?WvLr#0o4|@FjH#^L)=E*-CeP3MEeSh{_O^~A;cP{Lf!6G|B*CG@;ci8N zqettl6iJo|=Wa{FM9MMF8yPeI@L`|>4xXkq0z+9 z=bM{nsqTrI1`!6gC0VC4`=gIPZWBY``gIi<`qb2D{P*L1Jz`>Fdg9nIZO>kL5 zx?w(kTj#bUL6C;e&YZC!5x^pE`Xdm4_E)cd*X6H^569~`#)La!HoPaHKlb+a>dj_z zHxijMr$2cB4m1Y9;-IIeCm!^XE>~a1g$ox&7YN}0fPe#y5$)~mz3#X#!I5fvk3HZB zn>S|vY0d|5cz(8Z%M&Tk2T=(4=6p*x1hz?zXA`eq{~;vn)Rbw{WdHu>zjUk0Oi3sN z*zGok;|Mj5))Q*a$aXNOdG;ASyuSA8D|6v>QOUyJgJ91#4UJ~2+1&Ue5)qrt&JYBz z7Bx-ajjfwE>lPFjC*dyP!fq;u&*XABy>4Aa%F_RqT7-5xs;V!cATeSfD-gh1ix!r+ zT@&2Y^IC3BPC`LmUK9!eFokqM@&yF}uohTtsOzQ`kERIkE7q1L!GT0XrJ6|N!M#gD z;(wINi9r#0#~m%cw9Pio*WgKq5YufZPfn2265=w+QIsV`r&A#j=;`foB_<{+Lp4Q= z1U8<;#c(zWP19GjTCEI;!13e9+cIa**4DrGt`Sef4sUH58XMaLYk_-a8;x3cpO`pB z39m;EzcY7WyU~DW4V0Xeq?SZPSR}9&VQ<~KJ_84W0^Nn|+y8=laa~+g96waF6Yo3t zL7$-8t0T|z!R`FRXf!G(Mn*P)KKBp1ZaM09R6p~_P-dwHa^&#gInXByi;6`FgWis= zZ?jNR>5|)12!|T-{`!|V^cw+O^})hIElKi+;M~0!zyaAqQ>P~H&}cNY7@6YH04ttA zT~q+aU}ahJ?$;tpYKHSW`$?ip5gB=MrO6bJ#t0Z>aNb3f?oyba50QyFp}3-d#lyR} zn%{!Uf~&4tRi@)uw!g-pUnGR@W*RciEh;Gq$x{K2o|&I-dI{2*iQ0q=!pO zr4-9A9jYBU%nx*t9GA0x?OH{7`5IBe_hRB6Xv$Y7tXo?lCs{6cxayA)W1>P8$o8tL z-i?nv7PL5wKL{4|MWDMq@`3(}tQYn>SD41G8U)0_QM;=~2QKQ1K==2MkMvhYehIa8 zOV5USdI51TP1L>gVg?>$&QbJ)MZOmP`W&r;zZlfXq^GCtK8EKb*sq}w0OClJbi3!t zMzb+3Exl4AjmY(`oYe*ZQS0a(}*BwCE~ zod1E0H6(N)-|1^Q5ZqCJ@4fPWJoJzjgiTGJ$|)3zlRU@m3PhZMsA)C#(*!s*51DI7 z>_Xo2!o`c-cDtQ{q|(5r2_W7(efso?cxxnA$mQ1&K{oI#+X#`0arZRAP=IJxUtb1x uX*Eu~Od0fC2+P~>=GH28{cu-q27tE#@X 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 literal 0 HcmV?d00001 diff --git a/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnAddProfile.imageset/btn_add_profile@3x.png b/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnAddProfile.imageset/btn_add_profile@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..fb82b319d260c7258b42b43e35a51f86a1d3c6c5 GIT binary patch literal 6348 zcmV;-7&GUIP)ZZG??yj!BzjHiP z71h#o{rO(^yZ0hQq39e2QM^VFnv)z3Q!L90Nr>lT;TnUO7+w&5p>{vRpla!L&aV*> zsG4D{)rjH|RHQBdA#x6sAqXgmWlV#_4=PO%gjn$tOG4UFFN)hH{;+xu@nwvOwedVt zZLwHvh$2Hpia?M;Eazy+5)hMSLhK{~i53!}SQJD=@fJzKWtk$AgSRo(@U^^QDN+z+ zTU$$-=zp_Vftl&8b*!!Z>3UPs)wZUlYxWBlE;Pfn#;aEy4Gj$rwfhGqCPu;60RskD z;cG%dLR5VGjZw%8z~TxB*#uVDZ!%em7>21wVM5r56okn;T5}l0iWXByL)}l9rMvP2JiAqjRwhkRS)S8-_8Z-P?zlx4eh`%8r zKHl2hYr)boEXqd?uGr{S*3crwZk$D?98s7VuI_7UYHIt(KPo|pS5Dc!Zv4x~pVrmZ z);ds-h>wpqPZ&Qwdg|1vapT60jZ00vwXeJTv0#}9%XVZy3@K8Fqd7xz<%r2aE-a?a zR#pe1EG#UnJ9_+hV=zVO3E5d$aoO3~38P2d-dD7|(JpQiLjb0L<+!y*vaW^_DTvb~ zm{z;8njp-BpM7>Y@9np1^e#$wq=;d{jOo+k=FORt=*r3($-0KTNTsq+TibG;=X2E( zpsK2K4Szdy=<=)U*PjbzVY&hfcE$2#!(7C&)hx@b31zW{tVm^X3j7MBaOn_Zp0e4l z_8WxfGAe9f{Ez0AL*Qs5UJ4IoFte` z?@@93j%%?p`FgJg=w76P-M*Yh!Wu-xom8B@^LAcd@`CyEhW75=JA$}ek9c9NDKc^+ z(jmGPsVnRG>45_^k3Rmy87fZSftdC8zx!RXN`h6*a{OeySyf$%RLy!;R#i2=_~J{a z!zo+$HxnmLjQL>4`=ga10L!pz7_)gT(h0f}shah~u6@bUr4@+c7a#<9{IN%ek=LZb z0FGO%2dk{YnzuXTYiehp1}h~t~PJpl-}8@ilr*Ed1WyASc4`~XZ*R(+1n`r4IsIT z7u%@y3_jrg_kHv~qZJ)jLCOAuB2o}2&vte13l}XqgDAQ}C8-LyPy-&5+MAlvcoTby z6zJ=3zIB=kRG&aq<+V57B%e(ZJU_eLo`wQMKrLxoYikz6p!blo{t4x!haP^UgvOux z2jbK}{`Y^4Ax5g|1pzIN=+&zL`I&%;RA_6<;dw3}pF@I_nK}I!jXy&NwK5gUnsS+l z2)}kz1w^D&pvEB>LiM{yoi2VKKBoc=ebj_1y8c=Ia{Yc4DI`fIi}^5e#-LQ7#z94> z^&Da*`(yPLzll^TGeH(l1!`E-gesP&(zPy6`K1IU*FmX34Gj#X{ziPR@O+(@VtE)w z6`w!S5X~*AG}LLg%XLsFGyU_O6X_VdfdPwp?299laCr)r1Y*qQ$yyDeYHmq6d&@?$ zP!DxbDo|qs78RZ|K8K<1_MQxF&{U+*EyFNu4nBvGBwDBs58yd>9+?tywd$VI%-u`< zpn?>KN^E^+TgB7MmYqeEuwuub@<+^_Gj|9+=f!dUp7x_^B2s0;2sA50FDRmfB_~Tu z#;4vYFaOiyh7?WQJxuw)0)p9ZR z!yFkzp%9!cKQjq;_rnZS)?%5Ayu@cq3UlMhdMJ!2Aqqvotl9rk3IjTD?5o@NNu-jS zZ(qDY0^B@}Ln&%Nd_u_Yy~C{30qzM{0I;$YBPb1&-}cdzl-l9E<*zgtU6ttiDGbg`yxnxnh5q^!v#tGu9Ke+{BgG(c%h z-PKLqT2klS`E&R@E&aAaT6Usng{RikttI7Hv<4s3(Itx3fHgg3E4w0JFfmzb_qi3R zI7UAcALr+9r>>r&IeB?`a$_`$m>jioluMC9!i0zwNNC4B#UFsKDl01+ou{#!qos>A zjd1m1NSFj9NXJGkJN50`*F5_6+oJ~!8e~N};fEi7Xf8c@vhm85D`B(a-=V_KFX1*m z7MZ}B<}*x3x}=&o89iYdcFQf+7hZUN*toG{6QZJ`%t(iPe)w?B>#x6Y_U!lHHzR`s z3DkujYclaUYqtD?T%t$S-E#NzCSigH{%WL>tz#kSe zI0p_Kti{I>EIU(l`SSO=xcl}E!0i8r&yC{h!Nr4R3KfBpT)%$ZF)RE2Vk5hLh0CuO zUH)L~^1CEXoZX&*V^+wzjNjmucoy+sYwzagt7Cc4pJ(cX9&%#ka=~pMOAOiqdJj8g)>pMQ! zS@H5Kt94bmc;n5ts@A{yYVyJb^E>UD3`rjR9!AdkzdZhBoxFxrdttu_4!gvpVgWxD zAMf3}_cAg7P-aqID=#mv)0;psFaP$p73JmMb}|rPP1Sx6BT@MI=W;DxEbPm1X(y37 z=R?aoof)NouT}>wE6oG;#kI<7;_nfK49wBvM;q}%5+X^+IhfQ*q#Vn3+Kd(% zn1;s2Hl$#4T3Hf$Oklx*6#VdTR33z8wDhJQ2fyKe}H7E$~T#HF=A z{e)}tV&c@2B#V?4gd}`?`O@XEZf?G7%9JiO)$FWUgApYlR8)K~dvVTzGGvhoh?gzt zcW2KwAPOZ&TsU7N8%fdIcUV$}?MRx+%F4nz9^F^4zfyVaZ-)-inF#^H_RZgABgrzR zLGrLDD=@LR$ypq;4{LW1BR+ll^fBKxb;?a}4x)u?h!PM=zxqlxk_-~kWRb#Fd-%Ab zqQdZvw%xIOQEACTSUh$B9|^+ z3VT=YE8ylIdHA7Zd=AzWt|5xoTx)8Q>-3s$B_7T^wdARxqKlV1m2k5%qIk_!rAV2! z4oiCR(nad-eE=-x%zN+cQt*dn>*>>`#UYAUoIig-_UP1-dI2Otu4ZrU-0}V$u3oqF z=_Q(2(}srnupFvxPn_5eOIlNNo?22Dyz=s@VY!PIB`dRb5H9KFm87Jk#CdB?Kia#u zRxHKH)&!0}+`Y#TGbKFX>eU7slX?qw=MZN;oSU0SUVmWr>~6>Py|tz=mud94@rPb~ zX;tZKufK6>`aSm+qcEbO;VKoWw~+39(xi#M#K({rxwE1eu%^DupZ{?8?#o-ZZ95-M z%kC(lBJ}_e7b!&SzUR%Elb|*W)fG^lq6L2Mp(5=DW$hD_nK>=t*=JUI)eH?nrv-lR zp(5=DSMD4dp*?Z)O6YK@_q1pCf*{Y(i;0P$AE1+Qau3fv66r3|4BBI z0wdUDm&fp;NKNg>0|pqYRtmMn6D1{=ltY}bDA{dk>2XCzwAagk8*l7qCd*G2i^ZlKyRXIv_s*DMxEYRHx4m2Q zpIf({QO2kKz}=)de-`RPeX`z!J0{4kUd-%^;A9(WIrP8!E%cz&=T{X3s8$ z4Q7#_=x)-Sa*|!3er_l*b;=akIEulyRB`IGZ6oY)&zRWv;Mi7HRyS(Q*kj1R_-iY1 z5TPe=A-H{4RuvK_WugavSS2N;S9s5CAucuYvgGhU-E|@P8<=G0?)yrSiUO^JNqNYiK++`dhzB^@Yxk_;rg}U)DrUjv z3FF5bdIvU&zL=GjCA)gj#oKUCNtdQ)o)Pxr<0(_7^hFd(fXJSeC08Z{#K>J}T|4tR zp#UF_8#k7&VMGZC;OfVW9xdyQWjl1(MWhjtk)U9yUYeGg8fUb6DMg=%!_?LxLxyxz zluQ=6(xkFWGgHqHrgquVrHP0_@iWsiGv&|{>Z4MA-fQ%g zRjY;RSn6*Q;r}CMPrm*Pb|yi zG7*;T&hkytrUt@KmniVda73n6mTh0$>k$Ke!X zBv6P#(TJy>d_oqeTEc|scEK`^Q1^oi7YwG>l%fUT>a%9fltrqnjgoXLQn03EXB4%j z6fJn}nP&zP3DY^XgbCx((vLji<^O@`4DfHJ_}TzWdHrul6ybgg5`b ze*G}ejq|kH6DtaMy|DvXH=Qwk`an9SPw|9_citIuH!->-2xz6Juk|=_BH>$G_X%Px z7LKdVooh(`)o|J&MRCi8njfcj#G*{T$zoaT>1%!3B8TC5_$z4dkQzKVX3OTybO}X@ zOWxj+M@6)TOf0hjj-ezq;m(Q0r_Y?xeCZfUXftBO2y5BbC-1`N z951Z2L`rpckMUWg0B^S+#@+kW?Nij~?B-Fm$n(b3$ z6mA}|96uTPK+i;KwN{JfTaGX0&Y3%eX8RNXbny72kIK0UFYs$!wc>S0kKDcd1_-wg zt3*%BoPLbPr{N34p?^Ji;0|m>p;uHKvGmD`0-A_aTFRVd4~zd>5}b#_vXKFYbvz0nN4&hvsOAJMcNg zr|Z|PqfIDb#QJrw4pGLTQqz17(Zt=8w6!+pGYp%9&mWjG_t@Tof}kx_O9>2+DDBz3 z>yC~q-i<1`LvxV|f)Fb>Ady08a83*T#s?CmV_zJZL^hAGW=lG`=vYtC%-v(8Rrxr6 z7TJ6HnV9K~6n_y!F&sFP?<7!2lr$13pt&W*I5#glB_77YIW0{Y4`rzdN#pW-dQTH2 zC7N4Oj8y2iJD@fuZ(v3(s&P;gC_Hbi1q%30q=2P&Z<`<>Ie4Z*H3ljIh5pdR@Vt>9 z@T*9Hh+e%41dgXdH3+H#Mf_rT&d5*rEhbe$E+q-j7&Y{8DNswtqRalk@0Jt;^P@zU zFbfee>QS+5K^sy+19(nQW+G!yc%J?iC=f7_0^kzJWD3d_PynVQQ~Cx*lHfTJWhN;} z@~4X@37ESlQ8uIiTeoeiczP*a@?3Aczde8Cyt#A9M&%wijCe~>L<*=06}tPg@1I>t z-Q({`9gV# z6evvjfCMSn0tIwqNlDb)KUmfI3m+^kE-r3F6itBG^R?H0KSE(W>tS-Gw{zqDi7rJ7 zsAd1arw0zyytL}&vor+o9as%<+t#fk$hDaOu%0GPSR9Px$Q`;BDaN@{3Ru-xd<`0@ z-`~0O98Ije1H}2t%d3VwxM0CxqA(BW&U%vQUZen6RgOh#$Z076ga8{hZmM|e4}YjZ z6qmRWCt?It0Bd{c&3clAgh(-Mt*u$&8{VJ{0jOBjaVJi2?E)vP)k9*`9U&!BjMP!Z ziiwqqSoakaoZq_jogc$FW_2e{1jCvvv&Pc}Z1q4$iWK8YtNmMHK8t85a!Y)O9p0UPD>!i*GWPt=Ijnbi4;Rr z17;$kbVULkS0yE-b$j>jy{z|;07N-q{P^f8Q>XMDH+F2CD`6sV>9GAfClnY#oESrj zl%zZBiUBKo;zY@n!otG3qsNao26H1d5aqr1+!L3UmKp=1yyfPbqg7%|8L*n7Ft?i` zBMU;+rMtuMBE?A76`>4I1Peecd+E}p=I_2c+fY_k)=*hl*<4Xk(R{kR{5sNzktr!r zasB#5j2Sg5IyE&lX25{{QOU{4(c~N=7u1Www22R|fHn8pZbV^{gpEi^U@0KZZqGo7 z&k{p|RODO|$WyR@;rQaki;`$-YR;>QHzp>=939<9vV#5l_m7H>j*bAU=z$QGZ@QXi z(0*{`5s{HLqYINHEJdoMJ%(k|1V+eU5S!|WrS&r)z-lqREM_>tW>h!sDO98`us1cO zv1W6UfcP{JE@GHiQM_PrW06*f))7hKV{E*@{lM_3+JsP%o`)!d!T$pw@3qm&+clE_ O0000syaea$&C_FX*hr1yQo WuAIrceK!DI!QkoY=d#Wzp$P!?eop}a literal 0 HcmV?d00001 diff --git a/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnClear.imageset/btn_clear@2x.png b/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnClear.imageset/btn_clear@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0146ef1ab6d12733a36c47570c80e1436fcdd730 GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBI14-?iy0WiR6&^0Gf3qFP>``W z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&eB{%lVd$B+ufx6|%&H7M}3y8B;}z9#)$Y-;m{ zHLE!m-?`HKhFRbC_ksDnCo*`?+x$p<>FIHTBT}XDdg+}TKa+ihR&FRS&a>Lw=i~KM zY>LLxi3`P6=qYoaQ=1&5u=~t>r=uzRM0E5%hwYf<-#8spWNg~#}JF!JWL>|OFKF#AOM%AQ1twnUqoj7Hxlv@8~L*adVZgQu&X%Q~lo FCIFipVA=ox literal 0 HcmV?d00001 diff --git a/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnClear.imageset/btn_clear@3x.png b/Fillin-iOS/Fillin-iOS/Resources/Assets/Assets.xcassets/btnClear.imageset/btn_clear@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..d3bdaa7c6129ccd3bbc6c5d85ae8fb78714482ec GIT binary patch literal 403 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL1|)l2v+e>Z&H|6fVg?393lL^>oo1K-6l5$8 za(7}_cTVOdki(Mh=h#QZ~74 zQ=ej(@2x);0)mFKc0W1wTVa8c-28(-^o}twG_b6D|GrK_(dE@orpL>R>pV`#t_*Lv zV{_}F*YRsN+k(&8-@d-!^FcoK!zV9n^{?uVF*cv8Y5!|oZV$_xqLWKF_;x-Ca`D-j zv!p|!=%%Nj`;$#mmA;)w)pu<=&g?c literal 0 HcmV?d00001 diff --git a/Fillin-iOS/Fillin-iOS/Resources/Constants/Assets+Generated.swift b/Fillin-iOS/Fillin-iOS/Resources/Constants/Assets+Generated.swift index 12541e6..dc19357 100644 --- a/Fillin-iOS/Fillin-iOS/Resources/Constants/Assets+Generated.swift +++ b/Fillin-iOS/Fillin-iOS/Resources/Constants/Assets+Generated.swift @@ -24,8 +24,10 @@ internal enum Asset { internal static let accentColor = ColorAsset(name: "AccentColor") internal static let appleLogo = ImageAsset(name: "AppleLogo") internal static let basicProfile = ImageAsset(name: "basicProfile") + internal static let btnAddProfile = ImageAsset(name: "btnAddProfile") internal static let btnAddphhoto = ImageAsset(name: "btnAddphhoto") internal static let btnBack = ImageAsset(name: "btnBack") + internal static let btnClear = ImageAsset(name: "btnClear") internal static let btnHome = ImageAsset(name: "btnHome") internal static let btnHomeFloating = ImageAsset(name: "btnHomeFloating") internal static let btnLike = ImageAsset(name: "btnLike") diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/EditProfileViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/EditProfileViewController.swift new file mode 100644 index 0000000..58a07e2 --- /dev/null +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/EditProfileViewController.swift @@ -0,0 +1,271 @@ +// +// EditProfileViewController.swift +// Fillin-iOS +// +// Created by 김지수 on 2022/10/03. +// + +import UIKit + +import SnapKit +import Then + +// MARK: - EditProfileViewController +class EditProfileViewController: UIViewController { + + // MARK: - Components + let navigationBar = FilinNavigationBar() + let profileImage = UIImageView() + let editProfileButtonImage = UIButton() + let editProfileLabel = UILabel() + let nicknameLabel = UILabel() + let nicknameTextField = UITextField() + let nicknameBorder = UIView() + let cameraLabel = UILabel() + let cameraTextField = UITextField() + let cameraBorder = UIView() + let changeProfileButton = UIButton() + final let maxLength = 10 + + // MARK: - LifeCycle + override func viewDidLoad() { + super.viewDidLoad() + layout() + setUI() + attribute() + attributePlaceholder() + NotificationCenter.default.addObserver(self, + selector: #selector(textDidChange(_:)), + name: UITextField.textDidChangeNotification, + object: nicknameTextField) + NotificationCenter.default.addObserver(self, + selector: #selector(textDidChange(_:)), + name: UITextField.textDidChangeNotification, + object: cameraTextField) + + } +} +// MARK: - Extensions +extension EditProfileViewController { + func layout() { + layoutNavigaionBar() + layoutProfileImage() + layoutEditProfileButtonImage() + layoutEditProfileLabel() + layoutNicknameLabel() + layoutNicknameTextField() + layoutNicknameBorder() + layoutCameraLabel() + layoutCameraTextField() + layoutCameraBorder() + layoutChangeProfileButton() + } + func layoutNavigaionBar() { + self.view.add(navigationBar) { + self.navigationBar.popViewController = { + self.navigationController?.popViewController(animated: true) + } + $0.snp.makeConstraints { make in + make.top.equalTo(self.view.safeAreaLayoutGuide.snp.top) + make.leading.trailing.equalToSuperview() + make.height.equalTo(50) + } + } + } + func layoutProfileImage() { + self.view.add(profileImage) { + $0.setBorder(borderColor: .fillinWhite, borderWidth: 1) + $0.setRounded(radius: 27.5) + $0.image = Asset.noSearch.image + $0.contentMode = .scaleAspectFill + $0.clipsToBounds = true + $0.snp.makeConstraints { make in + make.top.equalTo(self.navigationBar.snp.bottom).offset(21) + make.centerX.equalToSuperview() + make.width.height.equalTo(55) + } + } + } + func layoutEditProfileButtonImage() { + self.view.add(editProfileButtonImage) { + $0.setImage(Asset.btnAddProfile.image, for: .normal) + $0.addTarget(self, action: #selector(self.profileChangeButtonClicked), for: .touchUpInside) + $0.snp.makeConstraints { make in + make.top.leading.trailing.bottom.equalTo(self.profileImage) + make.width.height.equalTo(55) + } + } + } + func layoutEditProfileLabel() { + self.view.add(editProfileLabel) { + $0.setupLabel(text: "프로필 사진 바꾸기", color: .grey3, font: .body1) + $0.snp.makeConstraints { make in + make.top.equalTo(self.editProfileButtonImage.snp.bottom).offset(12) + make.centerX.equalToSuperview() + } + } + } + func layoutNicknameLabel() { + self.view.add(nicknameLabel) { + $0.setupLabel(text: "닉네임", color: .fillinWhite, font: .subhead3) + $0.snp.makeConstraints { make in + make.top.equalTo(self.editProfileLabel.snp.bottom).offset(28) + make.leading.equalToSuperview().offset(18) + } + } + } + func layoutNicknameTextField() { + self.view.add(nicknameTextField) { + $0.placeholder = "닉네임을 입력해주세요. (10자 이하)" + $0.font = .subhead1 + $0.textColor = .fillinWhite + $0.autocorrectionType = .no + $0.autocapitalizationType = .none + $0.clearButtonMode = .always + if let clearButton = self.nicknameTextField.value(forKeyPath: "_clearButton") as? UIButton { + clearButton.setImage(Asset.btnClear.image, for: .normal) + $0.snp.makeConstraints { make in + make.top.equalTo(self.nicknameLabel.snp.bottom).offset(16) + make.centerX.equalToSuperview() + make.leading.equalToSuperview().offset(18) + } + } + } + } + func layoutNicknameBorder() { + self.view.add(nicknameBorder) { + $0.backgroundColor = .darkGrey1 + $0.snp.makeConstraints { make in + make.top.equalTo(self.nicknameTextField.snp.bottom).offset(6) + make.centerX.equalToSuperview() + make.leading.equalToSuperview().offset(18) + make.height.equalTo(1) + } + } + } + func layoutCameraLabel() { + self.view.add(cameraLabel) { + $0.setupLabel(text: "카메라", color: .fillinWhite, font: .subhead3) + $0.snp.makeConstraints { make in + make.top.equalTo(self.nicknameBorder.snp.bottom).offset(40) + make.leading.equalToSuperview().offset(18) + } + } + } + func layoutCameraTextField() { + self.view.add(cameraTextField) { + $0.placeholder = "사용 중인 카메라 이름을 입력해주세요." + $0.font = .subhead1 + $0.textColor = .fillinWhite + $0.autocorrectionType = .no + $0.autocapitalizationType = .none + $0.clearButtonMode = .always + if let clearButton = self.cameraTextField.value(forKeyPath: "_clearButton") as? UIButton { + clearButton.setImage(Asset.btnClear.image, for: .normal) + $0.snp.makeConstraints { make in + make.top.equalTo(self.cameraLabel.snp.bottom).offset(16) + make.centerX.equalToSuperview() + make.leading.equalToSuperview().offset(18) + } + } + } + } + func layoutCameraBorder() { + self.view.add(cameraBorder) { + $0.backgroundColor = .darkGrey1 + $0.snp.makeConstraints { make in + make.top.equalTo(self.cameraTextField.snp.bottom).offset(6) + make.centerX.equalToSuperview() + make.leading.equalToSuperview().offset(18) + make.height.equalTo(1) + } + } + } + func layoutChangeProfileButton() { + self.view.add(changeProfileButton) { + $0.setupButton(title: "프로필 변경", + color: .grey4, + font: .headline, + backgroundColor: .textviewGrey, + state: .normal, + radius: 0) + $0.isUserInteractionEnabled = false + $0.addTarget(self, action: #selector(self.sendButtonClicked), for: .touchUpInside) + $0.snp.makeConstraints { make in + make.centerX.equalToSuperview() + make.leading.trailing.equalToSuperview() + make.bottom.equalToSuperview() + make.height.equalTo(80) + } + } + } + func setUI() { + self.view.backgroundColor = .fillinBlack + } + func attribute() { + self.nicknameTextField.delegate = self + self.cameraTextField.delegate = self + } + func attributePlaceholder() { + nicknameTextField.attributedPlaceholder = NSAttributedString(string : "닉네임을 입력해주세요. (10자 이하)", + attributes : [NSAttributedString.Key.foregroundColor: UIColor.grey4, + NSAttributedString.Key.font : UIFont.body1]) + cameraTextField.attributedPlaceholder = NSAttributedString(string : "사용 중인 카메라 이름을 입력해주세요.", + attributes : [NSAttributedString.Key.foregroundColor: UIColor.grey4, + NSAttributedString.Key.font :UIFont.body1]) + } + @objc func profileChangeButtonClicked() { + print("프로필 이미지 변경하기") + } + @objc func sendButtonClicked() { + print("프로필 변경하기") + } +} + +// MARK: - UITextFieldDelegate +extension EditProfileViewController: UITextFieldDelegate { + + /// Return 눌렀을 때 키보드 내리기 + func textFieldShouldReturn(_ textField: UITextField) -> Bool { + textField.resignFirstResponder() + return true + } + /// nicknameTextField 글자수 세기, 제한 + /// 빌드해서 Camera TextField 확인하기 + @objc private func textDidChange(_ notification: Notification) { + if let textField = notification.object as? UITextField { + if let nicknametext = nicknameTextField.text { + + if nicknametext.count > maxLength { + // 6글자 넘어가면 자동으로 키보드 내려감 + // textField.resignFirstResponder() + let countNum = nicknameTextField.text?.count ?? 0 + // countTextLabel.text = "\(countNum)/6" + } + // 초과되는 텍스트 제거 + if nicknametext.count >= maxLength { + let index = nicknametext.index(nicknametext.startIndex, offsetBy: maxLength) + let newString = nicknametext[nicknametext.startIndex.. Date: Mon, 17 Oct 2022 14:45:08 +0900 Subject: [PATCH 28/28] =?UTF-8?q?[ADD]=20-=20#140=20=ED=94=84=EB=A1=9C?= =?UTF-8?q?=ED=95=84=20=EB=B3=80=EA=B2=BD=20Button=20=ED=99=9C=EC=84=B1?= =?UTF-8?q?=ED=99=94=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EditProfileViewController.swift | 36 +++++++++++-------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/EditProfileViewController.swift b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/EditProfileViewController.swift index 58a07e2..813f35d 100644 --- a/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/EditProfileViewController.swift +++ b/Fillin-iOS/Fillin-iOS/Sources/ViewControllers/MyPageViewController/EditProfileViewController.swift @@ -209,9 +209,9 @@ extension EditProfileViewController { func attributePlaceholder() { nicknameTextField.attributedPlaceholder = NSAttributedString(string : "닉네임을 입력해주세요. (10자 이하)", attributes : [NSAttributedString.Key.foregroundColor: UIColor.grey4, - NSAttributedString.Key.font : UIFont.body1]) + NSAttributedString.Key.font : UIFont.body1]) cameraTextField.attributedPlaceholder = NSAttributedString(string : "사용 중인 카메라 이름을 입력해주세요.", - attributes : [NSAttributedString.Key.foregroundColor: UIColor.grey4, + attributes : [NSAttributedString.Key.foregroundColor: UIColor.grey4, NSAttributedString.Key.font :UIFont.body1]) } @objc func profileChangeButtonClicked() { @@ -220,6 +220,10 @@ extension EditProfileViewController { @objc func sendButtonClicked() { print("프로필 변경하기") } + /// 빈 공간 터치하면 키보드 내려가게 + override func touchesBegan(_ touches: Set, with event: UIEvent?) { + self.view.endEditing(true) + } } // MARK: - UITextFieldDelegate @@ -231,7 +235,6 @@ extension EditProfileViewController: UITextFieldDelegate { return true } /// nicknameTextField 글자수 세기, 제한 - /// 빌드해서 Camera TextField 확인하기 @objc private func textDidChange(_ notification: Notification) { if let textField = notification.object as? UITextField { if let nicknametext = nicknameTextField.text { @@ -253,19 +256,22 @@ extension EditProfileViewController: UITextFieldDelegate { clearButton.setImage(Asset.btnClear.image, for: .normal) } } + if nicknametext.isEmpty == true { + self.changeProfileButton.setupButton(title: "프로필 변경", + color: .grey4, + font: .headline, + backgroundColor: .textviewGrey, + state: .normal, + radius: 0) + } else { + self.changeProfileButton.setupButton(title: "프로필 변경", + color: .fillinBlack, + font: .headline, + backgroundColor: .fillinRed, + state: .normal, + radius: 0) + } } -// self.changeProfileButton.setupButton(title: "프로필 변경", -// color: .fillinBlack, -// font: .headline, -// backgroundColor: .fillinRed, -// state: .normal, -// radius: 0) - self.changeProfileButton.setupButton(title: "프로필 변경", - color: .grey4, - font: .headline, - backgroundColor: .textviewGrey, - state: .normal, - radius: 0) } } }