From 8598c5c4308a3743e19aec6763cfc6330147f4de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=9D=B4=EC=A4=80?= Date: Sun, 21 Nov 2021 19:37:54 +0900 Subject: [PATCH 01/13] =?UTF-8?q?[FEAT]=20#46=20=EB=AA=85=ED=95=A8=20?= =?UTF-8?q?=EA=B7=B8=EB=A3=B9=20=EB=B7=B0=20=EB=84=A4=EB=B9=84=EA=B2=8C?= =?UTF-8?q?=EC=9D=B4=EC=85=98=20=EB=B0=94=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Storyboards/Group/Group.storyboard | 51 +++++++++++++++++-- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/NADA-iOS-forRelease/Resouces/Storyboards/Group/Group.storyboard b/NADA-iOS-forRelease/Resouces/Storyboards/Group/Group.storyboard index 0f4ddc03..2349494b 100644 --- a/NADA-iOS-forRelease/Resouces/Storyboards/Group/Group.storyboard +++ b/NADA-iOS-forRelease/Resouces/Storyboards/Group/Group.storyboard @@ -1,13 +1,18 @@ - + - + + + + SpoqaHanSansNeo-Bold + + @@ -16,20 +21,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + - + + + From 5dd8ac9d67348b10cb9b0e76f6a608873163e9f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=9D=B4=EC=A4=80?= Date: Sun, 21 Nov 2021 20:42:22 +0900 Subject: [PATCH 02/13] =?UTF-8?q?[FEAT]=20#46=20=EB=AA=85=ED=95=A8=20?= =?UTF-8?q?=EA=B7=B8=EB=A3=B9=20=EB=A0=88=EC=9D=B4=EC=95=84=EC=9B=83=20?= =?UTF-8?q?=EC=9E=A1=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Storyboards/Group/Group.storyboard | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/NADA-iOS-forRelease/Resouces/Storyboards/Group/Group.storyboard b/NADA-iOS-forRelease/Resouces/Storyboards/Group/Group.storyboard index 2349494b..f0d7dad9 100644 --- a/NADA-iOS-forRelease/Resouces/Storyboards/Group/Group.storyboard +++ b/NADA-iOS-forRelease/Resouces/Storyboards/Group/Group.storyboard @@ -6,6 +6,8 @@ + + @@ -53,17 +55,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -73,10 +139,14 @@ + + + + From bee89dfa1c3f9fa31f11f5342f1517573975bdfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=9D=B4=EC=A4=80?= Date: Sun, 21 Nov 2021 20:58:56 +0900 Subject: [PATCH 03/13] =?UTF-8?q?[FEAT]=20#46=20=EA=B7=B8=EB=A3=B9=20colle?= =?UTF-8?q?ctionview=20cell=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NADA-iOS-forRelease.xcodeproj/project.pbxproj | 16 +++++ .../GroupCell/GroupCollectionViewCell.swift | 39 +++++++++++ .../GroupCell/GroupCollectionViewCell.xib | 65 +++++++++++++++++++ 3 files changed, 120 insertions(+) create mode 100644 NADA-iOS-forRelease/Sources/Cells/GroupCell/GroupCollectionViewCell.swift create mode 100644 NADA-iOS-forRelease/Sources/Cells/GroupCell/GroupCollectionViewCell.xib diff --git a/NADA-iOS-forRelease.xcodeproj/project.pbxproj b/NADA-iOS-forRelease.xcodeproj/project.pbxproj index 00e77c07..fcbdb08d 100644 --- a/NADA-iOS-forRelease.xcodeproj/project.pbxproj +++ b/NADA-iOS-forRelease.xcodeproj/project.pbxproj @@ -46,6 +46,8 @@ 39F5A3D0271461EA00191F94 /* BackCardCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39F5A3CE271461EA00191F94 /* BackCardCell.swift */; }; 39F5A3D1271461EA00191F94 /* BackCardCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 39F5A3CF271461EA00191F94 /* BackCardCell.xib */; }; 7729171F2743D604001593E0 /* CardsInGroupResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7729171E2743D604001593E0 /* CardsInGroupResponse.swift */; }; + 77607EDA274A68BE00204CD2 /* GroupCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77607ED8274A68BD00204CD2 /* GroupCollectionViewCell.swift */; }; + 77607EDB274A68BE00204CD2 /* GroupCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 77607ED9274A68BD00204CD2 /* GroupCollectionViewCell.xib */; }; 777FF89B27359B7800BF69D3 /* Groups.swift in Sources */ = {isa = PBXBuildFile; fileRef = 777FF89A27359B7800BF69D3 /* Groups.swift */; }; 777FF89D2735B16B00BF69D3 /* GroupAddRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 777FF89C2735B16B00BF69D3 /* GroupAddRequest.swift */; }; 777FF89F27364B7B00BF69D3 /* GroupEditRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 777FF89E27364B7B00BF69D3 /* GroupEditRequest.swift */; }; @@ -137,6 +139,8 @@ 39F5A3CF271461EA00191F94 /* BackCardCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BackCardCell.xib; sourceTree = ""; }; 4A2183AE0E469153221624A0 /* Pods_NADA_iOS_forRelease.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_NADA_iOS_forRelease.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 7729171E2743D604001593E0 /* CardsInGroupResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardsInGroupResponse.swift; sourceTree = ""; }; + 77607ED8274A68BD00204CD2 /* GroupCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupCollectionViewCell.swift; sourceTree = ""; }; + 77607ED9274A68BD00204CD2 /* GroupCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GroupCollectionViewCell.xib; sourceTree = ""; }; 777FF89A27359B7800BF69D3 /* Groups.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Groups.swift; sourceTree = ""; }; 777FF89C2735B16B00BF69D3 /* GroupAddRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupAddRequest.swift; sourceTree = ""; }; 777FF89E27364B7B00BF69D3 /* GroupEditRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupEditRequest.swift; sourceTree = ""; }; @@ -344,6 +348,15 @@ name = Frameworks; sourceTree = ""; }; + 77607ED7274A689300204CD2 /* GroupCell */ = { + isa = PBXGroup; + children = ( + 77607ED8274A68BD00204CD2 /* GroupCollectionViewCell.swift */, + 77607ED9274A68BD00204CD2 /* GroupCollectionViewCell.xib */, + ); + path = GroupCell; + sourceTree = ""; + }; 777FF89927359B1000BF69D3 /* Group */ = { isa = PBXGroup; children = ( @@ -563,6 +576,7 @@ F8FC439B26C01EC30033E151 /* Cells */ = { isa = PBXGroup; children = ( + 77607ED7274A689300204CD2 /* GroupCell */, 392F7FB1274621CF008CDBF5 /* MoreList */, F84BAFA126FDB4E5004CA335 /* CreationCard */, 39523E582701A47400536900 /* CardList */, @@ -733,6 +747,7 @@ buildActionMask = 2147483647; files = ( F8FC43BF26C025180033E151 /* .swiftlint.yml in Resources */, + 77607EDB274A68BE00204CD2 /* GroupCollectionViewCell.xib in Resources */, 39369936274A4FCB00684420 /* NotoSansCJKkr-Regular.otf in Resources */, 39369935274A4FCB00684420 /* NotoSansCJKkr-Bold.otf in Resources */, 39D88B622745FBA900A72164 /* More.storyboard in Resources */, @@ -853,6 +868,7 @@ F82FF8252702000000E57F8B /* RequiredFlavorCollectionViewCell.swift in Sources */, F8C83FC7272FA2A20009DF0D /* CardService.swift in Sources */, 39D88B662745FE5F00A72164 /* TabBarViewController.swift in Sources */, + 77607EDA274A68BE00204CD2 /* GroupCollectionViewCell.swift in Sources */, F871227827330A3800A24E74 /* CardCreationRequest.swift in Sources */, 39D88B5F2745FB7E00A72164 /* MoreViewController.swift in Sources */, F8FC43B326C020B90033E151 /* BackCardCreationDelegate.swift in Sources */, diff --git a/NADA-iOS-forRelease/Sources/Cells/GroupCell/GroupCollectionViewCell.swift b/NADA-iOS-forRelease/Sources/Cells/GroupCell/GroupCollectionViewCell.swift new file mode 100644 index 00000000..8662f842 --- /dev/null +++ b/NADA-iOS-forRelease/Sources/Cells/GroupCell/GroupCollectionViewCell.swift @@ -0,0 +1,39 @@ +// +// GroupCollectionViewCell.swift +// NADA-iOS-forRelease +// +// Created by Yi Joon Choi on 2021/11/21. +// + +import UIKit + +class GroupCollectionViewCell: UICollectionViewCell { + + // MARK: - @IBOutlet Properties + @IBOutlet weak var groupButton: UIButton! + + // MARK: - View Life Cycle + override func awakeFromNib() { + super.awakeFromNib() + setUI() + } +} + +// MARK: - Extensions +extension GroupCollectionViewCell { + private func setUI(){ + groupButton.layer.cornerRadius = 15 + groupButton.setTitleColor(.mainColorButtonText, for: .normal) + groupButton.setTitleColor(.background, for: .selected) + } + + override var isSelected: Bool{ + didSet{ + groupButton.backgroundColor = isSelected ? .primary : .button + } + } + + static func nib() -> UINib { + return UINib(nibName: "GroupCollectionViewCell", bundle: nil) + } +} diff --git a/NADA-iOS-forRelease/Sources/Cells/GroupCell/GroupCollectionViewCell.xib b/NADA-iOS-forRelease/Sources/Cells/GroupCell/GroupCollectionViewCell.xib new file mode 100644 index 00000000..4d31ccee --- /dev/null +++ b/NADA-iOS-forRelease/Sources/Cells/GroupCell/GroupCollectionViewCell.xib @@ -0,0 +1,65 @@ + + + + + + + + + + + + + SpoqaHanSansNeo-Bold + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From f3865d9fc651ddc8624389c1a7aa76598b24b74c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=9D=B4=EC=A4=80?= Date: Mon, 22 Nov 2021 14:25:42 +0900 Subject: [PATCH 04/13] =?UTF-8?q?[FEAT]=20#46=20collectionview=20=ED=81=B0?= =?UTF-8?q?=20=EB=A0=88=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 --- .../Resouces/Constants/Xib.swift | 1 + .../Storyboards/Group/Group.storyboard | 16 ++- .../GroupCell/GroupCollectionViewCell.swift | 26 ++-- .../GroupCell/GroupCollectionViewCell.xib | 51 ++++---- .../Group/GroupViewController.swift | 111 +++++++++++++++++- 5 files changed, 162 insertions(+), 43 deletions(-) diff --git a/NADA-iOS-forRelease/Resouces/Constants/Xib.swift b/NADA-iOS-forRelease/Resouces/Constants/Xib.swift index 571a03b6..add4bcc2 100644 --- a/NADA-iOS-forRelease/Resouces/Constants/Xib.swift +++ b/NADA-iOS-forRelease/Resouces/Constants/Xib.swift @@ -16,5 +16,6 @@ extension Const { static let frontCardCell = "FrontCardCell" static let backCardCell = "BackCardCell" static let backgroundCollectionViewCell = "BackgroundCollectionViewCell" + static let GroupCollectionViewCell = "GroupCollectionViewCell" } } diff --git a/NADA-iOS-forRelease/Resouces/Storyboards/Group/Group.storyboard b/NADA-iOS-forRelease/Resouces/Storyboards/Group/Group.storyboard index f0d7dad9..6d68036f 100644 --- a/NADA-iOS-forRelease/Resouces/Storyboards/Group/Group.storyboard +++ b/NADA-iOS-forRelease/Resouces/Storyboards/Group/Group.storyboard @@ -35,11 +35,21 @@ @@ -60,13 +70,13 @@ - + - + @@ -74,7 +84,7 @@ - + diff --git a/NADA-iOS-forRelease/Sources/Cells/GroupCell/GroupCollectionViewCell.swift b/NADA-iOS-forRelease/Sources/Cells/GroupCell/GroupCollectionViewCell.swift index 8662f842..923e4868 100644 --- a/NADA-iOS-forRelease/Sources/Cells/GroupCell/GroupCollectionViewCell.swift +++ b/NADA-iOS-forRelease/Sources/Cells/GroupCell/GroupCollectionViewCell.swift @@ -10,30 +10,32 @@ import UIKit class GroupCollectionViewCell: UICollectionViewCell { // MARK: - @IBOutlet Properties - @IBOutlet weak var groupButton: UIButton! + @IBOutlet weak var groupBackground: UIView! + @IBOutlet weak var groupName: UILabel! // MARK: - View Life Cycle override func awakeFromNib() { super.awakeFromNib() setUI() } + + static func nib() -> UINib { + return UINib(nibName: "GroupCollectionViewCell", bundle: nil) + } } // MARK: - Extensions extension GroupCollectionViewCell { - private func setUI(){ - groupButton.layer.cornerRadius = 15 - groupButton.setTitleColor(.mainColorButtonText, for: .normal) - groupButton.setTitleColor(.background, for: .selected) + private func setUI() { + groupBackground.layer.cornerRadius = 15 + groupBackground.backgroundColor = .button + groupName.textColor = .mainColorButtonText } - override var isSelected: Bool{ - didSet{ - groupButton.backgroundColor = isSelected ? .primary : .button + override var isSelected: Bool { + didSet { + groupBackground.backgroundColor = isSelected ? .primary : .button + groupName.textColor = isSelected ? .background : .mainColorButtonText } } - - static func nib() -> UINib { - return UINib(nibName: "GroupCollectionViewCell", bundle: nil) - } } diff --git a/NADA-iOS-forRelease/Sources/Cells/GroupCell/GroupCollectionViewCell.xib b/NADA-iOS-forRelease/Sources/Cells/GroupCell/GroupCollectionViewCell.xib index 4d31ccee..1986c186 100644 --- a/NADA-iOS-forRelease/Sources/Cells/GroupCell/GroupCollectionViewCell.xib +++ b/NADA-iOS-forRelease/Sources/Cells/GroupCell/GroupCollectionViewCell.xib @@ -4,8 +4,8 @@ - + @@ -23,43 +23,42 @@ - + + + + + + + + + - - - - + + + + - + + - - - - - - - - - + + + diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift index 420ab4fd..8a9792a8 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift @@ -9,9 +9,23 @@ import UIKit class GroupViewController: UIViewController { + // MARK: - Properties + // 네비게이션 바 + @IBOutlet weak var addWithIDButton: UIButton! + @IBOutlet weak var addWithQRButton: UIButton! + + // 중간 그룹 이름들 나열된 뷰 + @IBOutlet weak var editGroupButton: UIButton! + // collectionview + @IBOutlet weak var groupCollectionView: UICollectionView! + @IBOutlet weak var cardsCollectionView: UICollectionView! + + // 그룹 이름들을 담을 변수 생성 + var groups = ["미분류", "SOPT", "그룹명엄청길어요이거"] + override func viewDidLoad() { super.viewDidLoad() - + registerCell() // 그룹 리스트 조회 서버 테스트 // groupListFetchWithAPI(userID: "nada") // 그룹 삭제 서버 테스트 @@ -31,6 +45,18 @@ class GroupViewController: UIViewController { } +extension GroupViewController { + private func registerCell() { + groupCollectionView.delegate = self + groupCollectionView.dataSource = self + cardsCollectionView.delegate = self + cardsCollectionView.dataSource = self + + groupCollectionView.register(GroupCollectionViewCell.nib(), forCellWithReuseIdentifier: Const.Xib.GroupCollectionViewCell) + cardsCollectionView.register(FrontCardCell.nib(), forCellWithReuseIdentifier: Const.Xib.frontCardCell) + } +} + // MARK: - Network extension GroupViewController { @@ -161,7 +187,7 @@ extension GroupViewController { case .success(let data): if let card = data as? Card { // print(card) - //통신 성공 + // 통신 성공 } case .requestErr(let message): print("cardDetailFetchWithAPI - requestErr: \(message)") @@ -175,3 +201,84 @@ extension GroupViewController { } } } + +// MARK: - UICollectionViewDelegate +extension GroupViewController: UICollectionViewDelegate { + +} + +// MARK: - UICollectionViewDataSource +extension GroupViewController: UICollectionViewDataSource { + func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { + if collectionView == groupCollectionView { + return groups.count + } else { + return 4 + } + } + + func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { + if collectionView == groupCollectionView { + guard let groupCell = collectionView.dequeueReusableCell(withReuseIdentifier: Const.Xib.GroupCollectionViewCell, for: indexPath) as? GroupCollectionViewCell else { + return UICollectionViewCell() + } + groupCell.groupName.text = groups[indexPath.row] + + if indexPath.row == 0 { + groupCell.isSelected = true + } else { + groupCell.isSelected = false + } + + return groupCell + } else { + guard let cardCell = collectionView.dequeueReusableCell(withReuseIdentifier: Const.Xib.frontCardCell, for: indexPath) as? FrontCardCell else { + return UICollectionViewCell() + } + + cardCell.backgroundColor = .blue + cardCell.cornerRadius = 15 + return cardCell + } + } + + func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { + print(indexPath.row) + } +} + +// MARK: - UICollectionViewDelegateFlowLayout +extension GroupViewController: UICollectionViewDelegateFlowLayout { + func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { + + var height: CGFloat + var width: CGFloat + + if collectionView == groupCollectionView { + width = collectionView.frame.size.width / CGFloat(groups.count) + height = collectionView.frame.size.height + } else { + width = collectionView.frame.size.width / 2 - 7.5 + height = collectionView.frame.size.height / 2 + } + + return CGSize(width: width, height: height) + } + func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets { + return .zero + } + func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat { + if collectionView == groupCollectionView { + return 5 + } else { + return 0 + } + } + func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { + if collectionView == groupCollectionView { + return 5 + } else { + return 14 + } + } +} From f9b4f5df7c6ae9c44c37c35fceac47c7d0f3102f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=9D=B4=EC=A4=80?= Date: Mon, 22 Nov 2021 14:54:15 +0900 Subject: [PATCH 05/13] =?UTF-8?q?[FEAT]=20#46=20=EA=B7=B8=EB=A3=B9?= =?UTF-8?q?=EB=AA=85=20=EB=8B=A4=EC=9D=B4=EB=82=98=EB=AF=B9=20=EC=85=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Group/GroupViewController.swift | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift index 8a9792a8..f12dd403 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift @@ -21,7 +21,7 @@ class GroupViewController: UIViewController { @IBOutlet weak var cardsCollectionView: UICollectionView! // 그룹 이름들을 담을 변수 생성 - var groups = ["미분류", "SOPT", "그룹명엄청길어요이거"] + var groups = ["미분류", "SOPT", "그룹명엄청길어요이거", "인하대학교"] override func viewDidLoad() { super.viewDidLoad() @@ -229,7 +229,7 @@ extension GroupViewController: UICollectionViewDataSource { } else { groupCell.isSelected = false } - + groupCollectionView.layoutIfNeeded() return groupCell } else { guard let cardCell = collectionView.dequeueReusableCell(withReuseIdentifier: Const.Xib.frontCardCell, for: indexPath) as? FrontCardCell else { @@ -255,7 +255,11 @@ extension GroupViewController: UICollectionViewDelegateFlowLayout { var width: CGFloat if collectionView == groupCollectionView { - width = collectionView.frame.size.width / CGFloat(groups.count) + if groups[indexPath.row].count > 4 { + width = CGFloat(groups[indexPath.row].count) * 16 + } else { + width = 62 + } height = collectionView.frame.size.height } else { width = collectionView.frame.size.width / 2 - 7.5 @@ -268,11 +272,7 @@ extension GroupViewController: UICollectionViewDelegateFlowLayout { return .zero } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat { - if collectionView == groupCollectionView { - return 5 - } else { - return 0 - } + return 0 } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { if collectionView == groupCollectionView { From 2c2ee452ff46881537b36ff6390b6f452c8aeb14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=9D=B4=EC=A4=80?= Date: Mon, 22 Nov 2021 15:04:48 +0900 Subject: [PATCH 06/13] =?UTF-8?q?[REFACTOR]=20#46=20collectionview=20switc?= =?UTF-8?q?h=20=EB=AC=B8=20=EC=82=AC=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Group/GroupViewController.swift | 43 +++++++++++++------ 1 file changed, 31 insertions(+), 12 deletions(-) diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift index f12dd403..9e60d12d 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift @@ -210,20 +210,24 @@ extension GroupViewController: UICollectionViewDelegate { // MARK: - UICollectionViewDataSource extension GroupViewController: UICollectionViewDataSource { func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { - if collectionView == groupCollectionView { + switch collectionView { + case groupCollectionView: return groups.count - } else { + case cardsCollectionView: return 4 + default: + return 0 } } func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { - if collectionView == groupCollectionView { + switch collectionView { + case groupCollectionView: guard let groupCell = collectionView.dequeueReusableCell(withReuseIdentifier: Const.Xib.GroupCollectionViewCell, for: indexPath) as? GroupCollectionViewCell else { return UICollectionViewCell() } - groupCell.groupName.text = groups[indexPath.row] + groupCell.groupName.text = groups[indexPath.row] if indexPath.row == 0 { groupCell.isSelected = true } else { @@ -231,7 +235,7 @@ extension GroupViewController: UICollectionViewDataSource { } groupCollectionView.layoutIfNeeded() return groupCell - } else { + case cardsCollectionView: guard let cardCell = collectionView.dequeueReusableCell(withReuseIdentifier: Const.Xib.frontCardCell, for: indexPath) as? FrontCardCell else { return UICollectionViewCell() } @@ -239,11 +243,20 @@ extension GroupViewController: UICollectionViewDataSource { cardCell.backgroundColor = .blue cardCell.cornerRadius = 15 return cardCell + default: + return UICollectionViewCell() } } func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { - print(indexPath.row) + switch collectionView { + case groupCollectionView: + print(indexPath.row) + case cardsCollectionView: + print(indexPath.row) + default: + print(indexPath.row) + } } } @@ -251,21 +264,24 @@ extension GroupViewController: UICollectionViewDataSource { extension GroupViewController: UICollectionViewDelegateFlowLayout { func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { - var height: CGFloat var width: CGFloat + var height: CGFloat - if collectionView == groupCollectionView { + switch collectionView { + case groupCollectionView: if groups[indexPath.row].count > 4 { width = CGFloat(groups[indexPath.row].count) * 16 } else { width = 62 } height = collectionView.frame.size.height - } else { + case cardsCollectionView: width = collectionView.frame.size.width / 2 - 7.5 height = collectionView.frame.size.height / 2 + default: + width = 0 + height = 0 } - return CGSize(width: width, height: height) } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets { @@ -275,10 +291,13 @@ extension GroupViewController: UICollectionViewDelegateFlowLayout { return 0 } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { - if collectionView == groupCollectionView { + switch collectionView { + case groupCollectionView: return 5 - } else { + case cardsCollectionView: return 14 + default: + return 0 } } } From 539ac3d88a08366958f1cf840759c76a497f0282 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=9D=B4=EC=A4=80?= Date: Fri, 26 Nov 2021 00:51:32 +0900 Subject: [PATCH 07/13] =?UTF-8?q?[FEAT]=20#46=20=EA=B7=B8=EB=A3=B9=20?= =?UTF-8?q?=ED=8E=B8=EC=A7=91=20=EB=B7=B0=20=EC=9D=B4=EC=96=B4=EC=A7=80?= =?UTF-8?q?=EA=B2=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NADA-iOS-forRelease.xcodeproj/project.pbxproj | 4 ++ .../Storyboards/Group/Group.storyboard | 43 +++++++++++++++---- .../AddWithIdBottomSheetViewController.swift | 18 ++++++++ .../Group/GroupViewController.swift | 26 +++++++++-- 4 files changed, 79 insertions(+), 12 deletions(-) create mode 100644 NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/AddWithIdBottomSheetViewController.swift diff --git a/NADA-iOS-forRelease.xcodeproj/project.pbxproj b/NADA-iOS-forRelease.xcodeproj/project.pbxproj index 7d60ae03..3c152d6d 100644 --- a/NADA-iOS-forRelease.xcodeproj/project.pbxproj +++ b/NADA-iOS-forRelease.xcodeproj/project.pbxproj @@ -58,6 +58,7 @@ 777FF89D2735B16B00BF69D3 /* GroupAddRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 777FF89C2735B16B00BF69D3 /* GroupAddRequest.swift */; }; 777FF89F27364B7B00BF69D3 /* GroupEditRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 777FF89E27364B7B00BF69D3 /* GroupEditRequest.swift */; }; 77AA68EA273E0EC4009C89B0 /* CardAddInGroupRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77AA68E9273E0EC4009C89B0 /* CardAddInGroupRequest.swift */; }; + 77DFB871274F92F9000CD36F /* AddWithIdBottomSheetViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77DFB870274F92F9000CD36F /* AddWithIdBottomSheetViewController.swift */; }; DBBB91E1639641F40C5B4416 /* Pods_NADA_iOS_forRelease.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A2183AE0E469153221624A0 /* Pods_NADA_iOS_forRelease.framework */; }; F811720027383097002742CF /* ChangeGroupRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = F81171FF27383097002742CF /* ChangeGroupRequest.swift */; }; F81A6833274F49A700B80A4F /* UITextField+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = F81A6832274F49A700B80A4F /* UITextField+Extension.swift */; }; @@ -160,6 +161,7 @@ 777FF89C2735B16B00BF69D3 /* GroupAddRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupAddRequest.swift; sourceTree = ""; }; 777FF89E27364B7B00BF69D3 /* GroupEditRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupEditRequest.swift; sourceTree = ""; }; 77AA68E9273E0EC4009C89B0 /* CardAddInGroupRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardAddInGroupRequest.swift; sourceTree = ""; }; + 77DFB870274F92F9000CD36F /* AddWithIdBottomSheetViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddWithIdBottomSheetViewController.swift; sourceTree = ""; }; 7F4EE1D042EC783FA8528743 /* Pods-NADA-iOS-forRelease.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NADA-iOS-forRelease.debug.xcconfig"; path = "Target Support Files/Pods-NADA-iOS-forRelease/Pods-NADA-iOS-forRelease.debug.xcconfig"; sourceTree = ""; }; F81171FF27383097002742CF /* ChangeGroupRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeGroupRequest.swift; sourceTree = ""; }; F81A6832274F49A700B80A4F /* UITextField+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITextField+Extension.swift"; sourceTree = ""; }; @@ -360,6 +362,7 @@ isa = PBXGroup; children = ( 39D88B6A274600B100A72164 /* CommonBottomSheetViewController.swift */, + 77DFB870274F92F9000CD36F /* AddWithIdBottomSheetViewController.swift */, 398413B6274A7A1E005550BC /* AddGroupBottomSheetViewController.swift */, ); path = BottomSheet; @@ -892,6 +895,7 @@ F858079E2700354E00872484 /* BackgroundCollectionViewCell.swift in Sources */, F8C83FBD272F9F430009DF0D /* GenericResponse.swift in Sources */, 398413B7274A7A1E005550BC /* AddGroupBottomSheetViewController.swift in Sources */, + 77DFB871274F92F9000CD36F /* AddWithIdBottomSheetViewController.swift in Sources */, 39007F2C27080D8200E7143E /* UIViewController+Extension.swift in Sources */, F8C83FB6272F9E380009DF0D /* UtilService.swift in Sources */, 3958F239270FFBBF00B100B2 /* GroupViewController.swift in Sources */, diff --git a/NADA-iOS-forRelease/Resouces/Storyboards/Group/Group.storyboard b/NADA-iOS-forRelease/Resouces/Storyboards/Group/Group.storyboard index 6d68036f..3219b7f0 100644 --- a/NADA-iOS-forRelease/Resouces/Storyboards/Group/Group.storyboard +++ b/NADA-iOS-forRelease/Resouces/Storyboards/Group/Group.storyboard @@ -1,5 +1,5 @@ - + @@ -25,7 +25,7 @@ - + @@ -66,12 +72,15 @@ - + @@ -94,7 +103,7 @@ - + @@ -131,18 +140,34 @@ - + - - - + + + + + + + + + + + + + + + + + + + diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/AddWithIdBottomSheetViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/AddWithIdBottomSheetViewController.swift new file mode 100644 index 00000000..e7c94cd0 --- /dev/null +++ b/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/AddWithIdBottomSheetViewController.swift @@ -0,0 +1,18 @@ +// +// AddWithIdBottomSheetViewController.swift +// NADA-iOS-forRelease +// +// Created by Yi Joon Choi on 2021/11/25. +// + +import UIKit + +class AddWithIdBottomSheetViewController: CommonBottomSheetViewController, UITextFieldDelegate { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + +} diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift index 9e60d12d..8cbb291d 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift @@ -11,11 +11,24 @@ class GroupViewController: UIViewController { // MARK: - Properties // 네비게이션 바 - @IBOutlet weak var addWithIDButton: UIButton! - @IBOutlet weak var addWithQRButton: UIButton! + @IBAction func presentToAddWithIdView(_ sender: Any) { +// let nextVC = AddWithIdBottomSheetViewController().setTitle("ID로 명함 추가").setHeight(184) +// let nextVC = AddGroupBottomSheetViewController().setTitle("ID로 명함 추가").setHeight(184) +// nextVC.modalPresentationStyle = .overFullScreen +// self.present(nextVC, animated: true, completion: nil) + } + @IBAction func presentToAddWithQrView(_ sender: Any) { + + } // 중간 그룹 이름들 나열된 뷰 - @IBOutlet weak var editGroupButton: UIButton! + @IBAction func pushToGroupEdit(_ sender: Any) { + + guard let nextVC = UIStoryboard.init(name: Const.Storyboard.Name.groupEdit, bundle: nil).instantiateViewController(withIdentifier: Const.ViewController.Identifier.groupEditViewController) as? GroupEditViewController else { return } + + navigationController?.pushViewController(nextVC, animated: true) + } + // collectionview @IBOutlet weak var groupCollectionView: UICollectionView! @IBOutlet weak var cardsCollectionView: UICollectionView! @@ -26,6 +39,7 @@ class GroupViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() registerCell() + setUI() // 그룹 리스트 조회 서버 테스트 // groupListFetchWithAPI(userID: "nada") // 그룹 삭제 서버 테스트 @@ -55,6 +69,10 @@ extension GroupViewController { groupCollectionView.register(GroupCollectionViewCell.nib(), forCellWithReuseIdentifier: Const.Xib.GroupCollectionViewCell) cardsCollectionView.register(FrontCardCell.nib(), forCellWithReuseIdentifier: Const.Xib.frontCardCell) } + + private func setUI(){ + navigationController?.navigationBar.isHidden = true + } } // MARK: - Network @@ -230,6 +248,8 @@ extension GroupViewController: UICollectionViewDataSource { groupCell.groupName.text = groups[indexPath.row] if indexPath.row == 0 { groupCell.isSelected = true + print(groupCell.groupName.text) + print(groupCell.groupName.textColor) } else { groupCell.isSelected = false } From af688911bfd97469a44dda8b449aee2c39e14776 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=9D=B4=EC=A4=80?= Date: Fri, 26 Nov 2021 02:12:42 +0900 Subject: [PATCH 08/13] =?UTF-8?q?[FEAT]=20#46=20=EB=AA=85=ED=95=A8=20?= =?UTF-8?q?=EA=B7=B8=EB=A3=B9=20=EB=B7=B0=20=EC=85=80=20=EB=94=B0=EB=A1=9C?= =?UTF-8?q?=20=EB=A7=8C=EB=93=A4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NADA-iOS-forRelease.xcodeproj/project.pbxproj | 9 +- .../Resouces/Constants/Xib.swift | 3 +- .../CardInGroupCollectionViewCell.swift | 21 +++ .../CardInGroupCollectionViewCell.xib | 144 ++++++++++++++++++ .../Group/GroupViewController.swift | 30 ++-- 5 files changed, 190 insertions(+), 17 deletions(-) create mode 100644 NADA-iOS-forRelease/Sources/Cells/GroupCell/CardInGroupCollectionViewCell.swift create mode 100644 NADA-iOS-forRelease/Sources/Cells/GroupCell/CardInGroupCollectionViewCell.xib diff --git a/NADA-iOS-forRelease.xcodeproj/project.pbxproj b/NADA-iOS-forRelease.xcodeproj/project.pbxproj index 3c152d6d..015bc01b 100644 --- a/NADA-iOS-forRelease.xcodeproj/project.pbxproj +++ b/NADA-iOS-forRelease.xcodeproj/project.pbxproj @@ -54,6 +54,8 @@ 7729171F2743D604001593E0 /* CardsInGroupResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7729171E2743D604001593E0 /* CardsInGroupResponse.swift */; }; 77607EDA274A68BE00204CD2 /* GroupCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77607ED8274A68BD00204CD2 /* GroupCollectionViewCell.swift */; }; 77607EDB274A68BE00204CD2 /* GroupCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 77607ED9274A68BD00204CD2 /* GroupCollectionViewCell.xib */; }; + 7766A40F274FEBE200714912 /* CardInGroupCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7766A40D274FEBE200714912 /* CardInGroupCollectionViewCell.swift */; }; + 7766A410274FEBE200714912 /* CardInGroupCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7766A40E274FEBE200714912 /* CardInGroupCollectionViewCell.xib */; }; 777FF89B27359B7800BF69D3 /* Groups.swift in Sources */ = {isa = PBXBuildFile; fileRef = 777FF89A27359B7800BF69D3 /* Groups.swift */; }; 777FF89D2735B16B00BF69D3 /* GroupAddRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 777FF89C2735B16B00BF69D3 /* GroupAddRequest.swift */; }; 777FF89F27364B7B00BF69D3 /* GroupEditRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 777FF89E27364B7B00BF69D3 /* GroupEditRequest.swift */; }; @@ -61,7 +63,6 @@ 77DFB871274F92F9000CD36F /* AddWithIdBottomSheetViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77DFB870274F92F9000CD36F /* AddWithIdBottomSheetViewController.swift */; }; DBBB91E1639641F40C5B4416 /* Pods_NADA_iOS_forRelease.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A2183AE0E469153221624A0 /* Pods_NADA_iOS_forRelease.framework */; }; F811720027383097002742CF /* ChangeGroupRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = F81171FF27383097002742CF /* ChangeGroupRequest.swift */; }; - F81A6833274F49A700B80A4F /* UITextField+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = F81A6832274F49A700B80A4F /* UITextField+Extension.swift */; }; F822E7A92709CEB60020452C /* Notification.swift in Sources */ = {isa = PBXBuildFile; fileRef = F822E7A82709CEB60020452C /* Notification.swift */; }; F82FF81D2701EBCE00E57F8B /* CardCreation.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F82FF81C2701EBCE00E57F8B /* CardCreation.storyboard */; }; F82FF8252702000000E57F8B /* RequiredFlavorCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F82FF8232702000000E57F8B /* RequiredFlavorCollectionViewCell.swift */; }; @@ -157,6 +158,8 @@ 7729171E2743D604001593E0 /* CardsInGroupResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardsInGroupResponse.swift; sourceTree = ""; }; 77607ED8274A68BD00204CD2 /* GroupCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupCollectionViewCell.swift; sourceTree = ""; }; 77607ED9274A68BD00204CD2 /* GroupCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GroupCollectionViewCell.xib; sourceTree = ""; }; + 7766A40D274FEBE200714912 /* CardInGroupCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardInGroupCollectionViewCell.swift; sourceTree = ""; }; + 7766A40E274FEBE200714912 /* CardInGroupCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CardInGroupCollectionViewCell.xib; sourceTree = ""; }; 777FF89A27359B7800BF69D3 /* Groups.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Groups.swift; sourceTree = ""; }; 777FF89C2735B16B00BF69D3 /* GroupAddRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupAddRequest.swift; sourceTree = ""; }; 777FF89E27364B7B00BF69D3 /* GroupEditRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupEditRequest.swift; sourceTree = ""; }; @@ -393,6 +396,8 @@ children = ( 77607ED8274A68BD00204CD2 /* GroupCollectionViewCell.swift */, 77607ED9274A68BD00204CD2 /* GroupCollectionViewCell.xib */, + 7766A40D274FEBE200714912 /* CardInGroupCollectionViewCell.swift */, + 7766A40E274FEBE200714912 /* CardInGroupCollectionViewCell.xib */, ); path = GroupCell; sourceTree = ""; @@ -809,6 +814,7 @@ F84BAFB226FDB552004CA335 /* BackCardCreationCollectionViewCell.xib in Resources */, 3936993B274A53C600684420 /* GroupEdit.storyboard in Resources */, 39D88B642745FDD400A72164 /* TabBar.storyboard in Resources */, + 7766A410274FEBE200714912 /* CardInGroupCollectionViewCell.xib in Resources */, 39523E5C2701A48900536900 /* CardListTableViewCell.xib in Resources */, F8FC439226C01CDE0033E151 /* LaunchScreen.storyboard in Resources */, F8FC438F26C01CDE0033E151 /* Assets.xcassets in Resources */, @@ -942,6 +948,7 @@ 39811490273BEBCE00E28630 /* CardListRequest.swift in Sources */, F8FC43BC26C022A20033E151 /* Storyboard.swift in Sources */, F8C83FC1272FA06E0009DF0D /* UserAPI.swift in Sources */, + 7766A40F274FEBE200714912 /* CardInGroupCollectionViewCell.swift in Sources */, F8C83FC3272FA17B0009DF0D /* URL.swift in Sources */, 392F7FB4274621F1008CDBF5 /* MoreListTableViewCell.swift in Sources */, 77AA68EA273E0EC4009C89B0 /* CardAddInGroupRequest.swift in Sources */, diff --git a/NADA-iOS-forRelease/Resouces/Constants/Xib.swift b/NADA-iOS-forRelease/Resouces/Constants/Xib.swift index 4047fbe6..6eb1ccc9 100644 --- a/NADA-iOS-forRelease/Resouces/Constants/Xib.swift +++ b/NADA-iOS-forRelease/Resouces/Constants/Xib.swift @@ -16,7 +16,8 @@ extension Const { static let frontCardCell = "FrontCardCell" static let backCardCell = "BackCardCell" static let backgroundCollectionViewCell = "BackgroundCollectionViewCell" - static let GroupCollectionViewCell = "GroupCollectionViewCell" + static let groupCollectionViewCell = "GroupCollectionViewCell" + static let cardInGroupCollectionViewCell = "CardInGroupCollectionViewCell" static let groupEditTableViewCell = "GroupEditTableViewCell" static let moreListTableViewCell = "MoreListTableViewCell" } diff --git a/NADA-iOS-forRelease/Sources/Cells/GroupCell/CardInGroupCollectionViewCell.swift b/NADA-iOS-forRelease/Sources/Cells/GroupCell/CardInGroupCollectionViewCell.swift new file mode 100644 index 00000000..e4d5210a --- /dev/null +++ b/NADA-iOS-forRelease/Sources/Cells/GroupCell/CardInGroupCollectionViewCell.swift @@ -0,0 +1,21 @@ +// +// CardInGroupCollectionViewCell.swift +// NADA-iOS-forRelease +// +// Created by Yi Joon Choi on 2021/11/26. +// + +import UIKit + +class CardInGroupCollectionViewCell: UICollectionViewCell { + + override func awakeFromNib() { + super.awakeFromNib() + // Initialization code + } + + static func nib() -> UINib { + return UINib(nibName: "CardInGroupCollectionViewCell", bundle: Bundle(for: CardInGroupCollectionViewCell.self)) + } + +} diff --git a/NADA-iOS-forRelease/Sources/Cells/GroupCell/CardInGroupCollectionViewCell.xib b/NADA-iOS-forRelease/Sources/Cells/GroupCell/CardInGroupCollectionViewCell.xib new file mode 100644 index 00000000..85277286 --- /dev/null +++ b/NADA-iOS-forRelease/Sources/Cells/GroupCell/CardInGroupCollectionViewCell.xib @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + SpoqaHanSansNeo-Bold + + + SpoqaHanSansNeo-Regular + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift index 8cbb291d..a74acb0f 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift @@ -13,17 +13,17 @@ class GroupViewController: UIViewController { // 네비게이션 바 @IBAction func presentToAddWithIdView(_ sender: Any) { // let nextVC = AddWithIdBottomSheetViewController().setTitle("ID로 명함 추가").setHeight(184) -// let nextVC = AddGroupBottomSheetViewController().setTitle("ID로 명함 추가").setHeight(184) -// nextVC.modalPresentationStyle = .overFullScreen -// self.present(nextVC, animated: true, completion: nil) + let nextVC = AddGroupBottomSheetViewController().setTitle("ID로 명함 추가").setHeight(184) + nextVC.modalPresentationStyle = .overFullScreen + self.present(nextVC, animated: true, completion: nil) } + @IBAction func presentToAddWithQrView(_ sender: Any) { } // 중간 그룹 이름들 나열된 뷰 @IBAction func pushToGroupEdit(_ sender: Any) { - guard let nextVC = UIStoryboard.init(name: Const.Storyboard.Name.groupEdit, bundle: nil).instantiateViewController(withIdentifier: Const.ViewController.Identifier.groupEditViewController) as? GroupEditViewController else { return } navigationController?.pushViewController(nextVC, animated: true) @@ -66,11 +66,11 @@ extension GroupViewController { cardsCollectionView.delegate = self cardsCollectionView.dataSource = self - groupCollectionView.register(GroupCollectionViewCell.nib(), forCellWithReuseIdentifier: Const.Xib.GroupCollectionViewCell) - cardsCollectionView.register(FrontCardCell.nib(), forCellWithReuseIdentifier: Const.Xib.frontCardCell) + groupCollectionView.register(GroupCollectionViewCell.nib(), forCellWithReuseIdentifier: Const.Xib.groupCollectionViewCell) + cardsCollectionView.register(CardInGroupCollectionViewCell.nib(), forCellWithReuseIdentifier: Const.Xib.cardInGroupCollectionViewCell) } - private func setUI(){ + private func setUI() { navigationController?.navigationBar.isHidden = true } } @@ -241,27 +241,25 @@ extension GroupViewController: UICollectionViewDataSource { func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { switch collectionView { case groupCollectionView: - guard let groupCell = collectionView.dequeueReusableCell(withReuseIdentifier: Const.Xib.GroupCollectionViewCell, for: indexPath) as? GroupCollectionViewCell else { + guard let groupCell = collectionView.dequeueReusableCell(withReuseIdentifier: Const.Xib.groupCollectionViewCell, for: indexPath) as? GroupCollectionViewCell else { return UICollectionViewCell() } groupCell.groupName.text = groups[indexPath.row] if indexPath.row == 0 { +// groupCell.groupName.textColor = .background +// groupCell.groupBackground.backgroundColor = .primary groupCell.isSelected = true - print(groupCell.groupName.text) - print(groupCell.groupName.textColor) } else { groupCell.isSelected = false } groupCollectionView.layoutIfNeeded() return groupCell case cardsCollectionView: - guard let cardCell = collectionView.dequeueReusableCell(withReuseIdentifier: Const.Xib.frontCardCell, for: indexPath) as? FrontCardCell else { + guard let cardCell = collectionView.dequeueReusableCell(withReuseIdentifier: Const.Xib.cardInGroupCollectionViewCell, for: indexPath) as? CardInGroupCollectionViewCell else { return UICollectionViewCell() } - cardCell.backgroundColor = .blue - cardCell.cornerRadius = 15 return cardCell default: return UICollectionViewCell() @@ -296,8 +294,10 @@ extension GroupViewController: UICollectionViewDelegateFlowLayout { } height = collectionView.frame.size.height case cardsCollectionView: - width = collectionView.frame.size.width / 2 - 7.5 - height = collectionView.frame.size.height / 2 +// width = collectionView.frame.size.width / 2 - 7.5 +// height = collectionView.frame.size.height / 2 + width = 156 + height = 258 default: width = 0 height = 0 From a4f32d67d4b87ecd7836486c9d7f664af09a3080 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=9D=B4=EC=A4=80?= Date: Fri, 26 Nov 2021 02:40:21 +0900 Subject: [PATCH 09/13] =?UTF-8?q?[FEAT]=20#46=20=EB=AA=85=ED=95=A8=20?= =?UTF-8?q?=EA=B7=B8=EB=A3=B9=20=EB=B7=B0=20=EC=85=80=20IBoutlet=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 --- .../CardInGroupCollectionViewCell.swift | 19 ++++++++++++++++++- .../CardInGroupCollectionViewCell.xib | 10 ++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/NADA-iOS-forRelease/Sources/Cells/GroupCell/CardInGroupCollectionViewCell.swift b/NADA-iOS-forRelease/Sources/Cells/GroupCell/CardInGroupCollectionViewCell.swift index e4d5210a..687a8ddc 100644 --- a/NADA-iOS-forRelease/Sources/Cells/GroupCell/CardInGroupCollectionViewCell.swift +++ b/NADA-iOS-forRelease/Sources/Cells/GroupCell/CardInGroupCollectionViewCell.swift @@ -9,9 +9,19 @@ import UIKit class CardInGroupCollectionViewCell: UICollectionViewCell { + @IBOutlet weak var backgroundImageView: UIImageView! + @IBOutlet weak var titleLabel: UILabel! + @IBOutlet weak var descriptionLabel: UILabel! + @IBOutlet weak var userNameLabel: UILabel! + @IBOutlet weak var birthLabel: UILabel! + @IBOutlet weak var mbtiLabel: UILabel! + + @IBOutlet weak var instagramIDLabel: UILabel! + @IBOutlet weak var lineURLLabel: UILabel! + override func awakeFromNib() { super.awakeFromNib() - // Initialization code + setUI() } static func nib() -> UINib { @@ -19,3 +29,10 @@ class CardInGroupCollectionViewCell: UICollectionViewCell { } } + +extension CardInGroupCollectionViewCell { + private func setUI() { + +// backgroundImageView.alpha = 0.4 + } +} diff --git a/NADA-iOS-forRelease/Sources/Cells/GroupCell/CardInGroupCollectionViewCell.xib b/NADA-iOS-forRelease/Sources/Cells/GroupCell/CardInGroupCollectionViewCell.xib index 85277286..11a841f0 100644 --- a/NADA-iOS-forRelease/Sources/Cells/GroupCell/CardInGroupCollectionViewCell.xib +++ b/NADA-iOS-forRelease/Sources/Cells/GroupCell/CardInGroupCollectionViewCell.xib @@ -127,6 +127,16 @@ + + + + + + + + + + From 137a66f4f3b63c4a47e4d8d73733e116b4ff9c9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=9D=B4=EC=A4=80?= Date: Fri, 26 Nov 2021 02:52:45 +0900 Subject: [PATCH 10/13] =?UTF-8?q?[FEAT]=20#46=20=EC=95=84=EC=9D=B4?= =?UTF-8?q?=EB=94=94=EB=A1=9C=20=EC=B6=94=EA=B0=80=20bottomSheet=20?= =?UTF-8?q?=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AddWithIdBottomSheetViewController.swift | 86 ++++++++++++++++++- .../CommonBottomSheetViewController.swift | 3 +- .../Group/GroupViewController.swift | 3 +- 3 files changed, 88 insertions(+), 4 deletions(-) diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/AddWithIdBottomSheetViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/AddWithIdBottomSheetViewController.swift index e7c94cd0..c9637542 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/AddWithIdBottomSheetViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/AddWithIdBottomSheetViewController.swift @@ -6,13 +6,97 @@ // import UIKit +import IQKeyboardManagerSwift class AddWithIdBottomSheetViewController: CommonBottomSheetViewController, UITextFieldDelegate { + + // MARK: - Properties + // ID 추가 텍스트 필드 + private let addWithIdTextField: UITextField = { + let textField = UITextField() + textField.borderStyle = .none + textField.cornerRadius = 10 + textField.backgroundColor = .textBox + textField.attributedPlaceholder = NSAttributedString(string: "친구의 명함 ID를 입력해보세요.", attributes: [.foregroundColor: UIColor.quaternary, .font: UIFont.textRegular04]) + textField.returnKeyType = .done + textField.setLeftPaddingPoints(12) + textField.setRightPaddingPoints(12) + + return textField + }() + + private let errorImageView: UIImageView = { + let imageView = UIImageView() + imageView.image = UIImage(named: "iconError") + + return imageView + }() + + private let explainLabel: UILabel = { + let label = UILabel() + label.text = "검색한 ID가 존재하지 않습니다." + label.textColor = .stateColorError + label.font = .textRegular05 + + return label + }() override func viewDidLoad() { super.viewDidLoad() - // Do any additional setup after loading the view. + setupUI() + addWithIdTextField.delegate = self + IQKeyboardManager.shared.shouldResignOnTouchOutside = false } + + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + + self.addWithIdTextField.becomeFirstResponder() + } + + // MARK: - @Functions + // UI 세팅 작업 + private func setupUI() { + view.addSubview(addWithIdTextField) + view.addSubview(errorImageView) + view.addSubview(explainLabel) + + setupLayout() + errorImageView.isHidden = true + explainLabel.isHidden = true + } + + // 레이아웃 세팅 + private func setupLayout() { + addWithIdTextField.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + addWithIdTextField.topAnchor.constraint(equalTo: titleLabel.bottomAnchor, constant: 20), + addWithIdTextField.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 24), + addWithIdTextField.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -24), + addWithIdTextField.heightAnchor.constraint(equalToConstant: 45) + ]) + + errorImageView.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + errorImageView.topAnchor.constraint(equalTo: addWithIdTextField.bottomAnchor, constant: 7), + errorImageView.leadingAnchor.constraint(equalTo: addWithIdTextField.leadingAnchor, constant: 4), + errorImageView.widthAnchor.constraint(equalToConstant: 16), + errorImageView.heightAnchor.constraint(equalToConstant: 16) + ]) + + explainLabel.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + explainLabel.topAnchor.constraint(equalTo: addWithIdTextField.bottomAnchor, constant: 8), + explainLabel.leadingAnchor.constraint(equalTo: errorImageView.trailingAnchor, constant: 5) + ]) + } +} +extension AddWithIdBottomSheetViewController { + func textFieldShouldReturn(_ textField: UITextField) -> Bool { + textField.resignFirstResponder() + hideBottomSheetAndGoBack() + return true + } } diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/CommonBottomSheetViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/CommonBottomSheetViewController.swift index be17a3b3..f45d8ff3 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/CommonBottomSheetViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/CommonBottomSheetViewController.swift @@ -72,6 +72,7 @@ class CommonBottomSheetViewController: UIViewController { let label = UILabel() label.font = .systemFont(ofSize: 20, weight: .bold) label.textAlignment = .center + label.sizeToFit() return label }() @@ -155,7 +156,7 @@ class CommonBottomSheetViewController: UIViewController { titleLabel.translatesAutoresizingMaskIntoConstraints = false NSLayoutConstraint.activate([ titleLabel.topAnchor.constraint(equalTo: dismissIndicatorView.bottomAnchor, constant: 28), - titleLabel.widthAnchor.constraint(equalToConstant: 100), +// titleLabel.widthAnchor.constraint(equalToConstant: 100), titleLabel.centerXAnchor.constraint(equalTo: bottomSheetView.centerXAnchor) ]) } diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift index a74acb0f..5e908ac4 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift @@ -12,8 +12,7 @@ class GroupViewController: UIViewController { // MARK: - Properties // 네비게이션 바 @IBAction func presentToAddWithIdView(_ sender: Any) { -// let nextVC = AddWithIdBottomSheetViewController().setTitle("ID로 명함 추가").setHeight(184) - let nextVC = AddGroupBottomSheetViewController().setTitle("ID로 명함 추가").setHeight(184) + let nextVC = AddWithIdBottomSheetViewController().setTitle("ID로 명함 추가").setHeight(184) nextVC.modalPresentationStyle = .overFullScreen self.present(nextVC, animated: true, completion: nil) } From 7f0091c423607cef9ec12659fcc6628836232ba6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=9D=B4=EC=A4=80?= Date: Fri, 26 Nov 2021 03:12:23 +0900 Subject: [PATCH 11/13] =?UTF-8?q?[FEAT]=20#46=20ID=EA=B2=80=EC=83=89=20?= =?UTF-8?q?=EB=92=A4=20=EB=AA=85=ED=95=A8=20bottomSheet=20=EC=97=B0?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NADA-iOS-forRelease.xcodeproj/project.pbxproj | 4 ++++ .../AddWithIdBottomSheetViewController.swift | 2 +- .../CardResultBottomSheetViewController.swift | 19 ++++++++++++++++++ .../CommonBottomSheetViewController.swift | 20 +++++++++++++++++++ .../Group/GroupViewController.swift | 2 +- 5 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/CardResultBottomSheetViewController.swift diff --git a/NADA-iOS-forRelease.xcodeproj/project.pbxproj b/NADA-iOS-forRelease.xcodeproj/project.pbxproj index 015bc01b..131bfe0d 100644 --- a/NADA-iOS-forRelease.xcodeproj/project.pbxproj +++ b/NADA-iOS-forRelease.xcodeproj/project.pbxproj @@ -56,6 +56,7 @@ 77607EDB274A68BE00204CD2 /* GroupCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 77607ED9274A68BD00204CD2 /* GroupCollectionViewCell.xib */; }; 7766A40F274FEBE200714912 /* CardInGroupCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7766A40D274FEBE200714912 /* CardInGroupCollectionViewCell.swift */; }; 7766A410274FEBE200714912 /* CardInGroupCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7766A40E274FEBE200714912 /* CardInGroupCollectionViewCell.xib */; }; + 77703157275005AA002CBD19 /* CardResultBottomSheetViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77703156275005AA002CBD19 /* CardResultBottomSheetViewController.swift */; }; 777FF89B27359B7800BF69D3 /* Groups.swift in Sources */ = {isa = PBXBuildFile; fileRef = 777FF89A27359B7800BF69D3 /* Groups.swift */; }; 777FF89D2735B16B00BF69D3 /* GroupAddRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 777FF89C2735B16B00BF69D3 /* GroupAddRequest.swift */; }; 777FF89F27364B7B00BF69D3 /* GroupEditRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 777FF89E27364B7B00BF69D3 /* GroupEditRequest.swift */; }; @@ -160,6 +161,7 @@ 77607ED9274A68BD00204CD2 /* GroupCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = GroupCollectionViewCell.xib; sourceTree = ""; }; 7766A40D274FEBE200714912 /* CardInGroupCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardInGroupCollectionViewCell.swift; sourceTree = ""; }; 7766A40E274FEBE200714912 /* CardInGroupCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CardInGroupCollectionViewCell.xib; sourceTree = ""; }; + 77703156275005AA002CBD19 /* CardResultBottomSheetViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardResultBottomSheetViewController.swift; sourceTree = ""; }; 777FF89A27359B7800BF69D3 /* Groups.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Groups.swift; sourceTree = ""; }; 777FF89C2735B16B00BF69D3 /* GroupAddRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupAddRequest.swift; sourceTree = ""; }; 777FF89E27364B7B00BF69D3 /* GroupEditRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupEditRequest.swift; sourceTree = ""; }; @@ -367,6 +369,7 @@ 39D88B6A274600B100A72164 /* CommonBottomSheetViewController.swift */, 77DFB870274F92F9000CD36F /* AddWithIdBottomSheetViewController.swift */, 398413B6274A7A1E005550BC /* AddGroupBottomSheetViewController.swift */, + 77703156275005AA002CBD19 /* CardResultBottomSheetViewController.swift */, ); path = BottomSheet; sourceTree = ""; @@ -955,6 +958,7 @@ 3936993E274A53E000684420 /* GroupEditViewController.swift in Sources */, F8C83FAE272F99940009DF0D /* MoyaLoggerPlugin.swift in Sources */, F84BAFAD26FDB543004CA335 /* FrontCardCreationCollectionViewCell.swift in Sources */, + 77703157275005AA002CBD19 /* CardResultBottomSheetViewController.swift in Sources */, 39D13565273FDB9C00B1A148 /* User.swift in Sources */, F822E7A92709CEB60020452C /* Notification.swift in Sources */, F8C83FC5272FA2940009DF0D /* CardAPI.swift in Sources */, diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/AddWithIdBottomSheetViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/AddWithIdBottomSheetViewController.swift index c9637542..0253e329 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/AddWithIdBottomSheetViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/AddWithIdBottomSheetViewController.swift @@ -96,7 +96,7 @@ class AddWithIdBottomSheetViewController: CommonBottomSheetViewController, UITex extension AddWithIdBottomSheetViewController { func textFieldShouldReturn(_ textField: UITextField) -> Bool { textField.resignFirstResponder() - hideBottomSheetAndGoBack() + hideBottomSheetAndPresent(nextBottomSheet: CardResultBottomSheetViewController()) return true } } diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/CardResultBottomSheetViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/CardResultBottomSheetViewController.swift new file mode 100644 index 00000000..9dcc06c1 --- /dev/null +++ b/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/CardResultBottomSheetViewController.swift @@ -0,0 +1,19 @@ +// +// CardResultBottomSheetViewController.swift +// NADA-iOS-forRelease +// +// Created by Yi Joon Choi on 2021/11/26. +// + +import UIKit +import IQKeyboardManagerSwift + +class CardResultBottomSheetViewController: CommonBottomSheetViewController, UITextFieldDelegate { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + +} diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/CommonBottomSheetViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/CommonBottomSheetViewController.swift index f45d8ff3..f9e80c34 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/CommonBottomSheetViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/CommonBottomSheetViewController.swift @@ -192,6 +192,26 @@ class CommonBottomSheetViewController: UIViewController { } } + func hideBottomSheetAndPresent(nextBottomSheet: CommonBottomSheetViewController) { + let safeAreaHeight = view.safeAreaLayoutGuide.layoutFrame.height + let bottomPadding = view.safeAreaInsets.bottom + bottomSheetViewTopConstraint.constant = safeAreaHeight + bottomPadding + UIView.animate(withDuration: 0.2, delay: 0, options: .curveEaseOut, animations: { + self.dimmedBackView.alpha = 0.0 + self.view.layoutIfNeeded() + self.bottomSheetCoverView.isHidden = false + }) { _ in + if self.presentingViewController != nil { + guard let presentingVC = self.presentingViewController else { return } + self.dismiss(animated: false) { + let nextVC = nextBottomSheet.setTitle("이채연").setHeight(574) + nextVC.modalPresentationStyle = .overFullScreen + presentingVC.present(nextVC, animated: true, completion: nil) + } + } + } + } + // UITapGestureRecognizer 연결 함수 부분 @objc private func dimmedViewTapped(_ tapRecognizer: UITapGestureRecognizer) { hideBottomSheetAndGoBack() diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift index 5e908ac4..5f054bb4 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift @@ -231,7 +231,7 @@ extension GroupViewController: UICollectionViewDataSource { case groupCollectionView: return groups.count case cardsCollectionView: - return 4 + return 5 default: return 0 } From f0750a2ba40e43a6181ac3adfcef0e3b744752a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=9D=B4=EC=A4=80?= Date: Fri, 26 Nov 2021 03:31:54 +0900 Subject: [PATCH 12/13] =?UTF-8?q?[FEAT]=20#46=20QR=EC=8A=A4=EC=BA=94=20?= =?UTF-8?q?=ED=99=94=EB=A9=B4=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NADA-iOS-forRelease.xcodeproj/project.pbxproj | 8 +++++ .../Resouces/Constants/Storyboard.swift | 1 + .../Resouces/Constants/ViewController.swift | 1 + .../Storyboards/Group/QRScan.storyboard | 33 +++++++++++++++++++ .../AddWithIdBottomSheetViewController.swift | 1 + .../Group/GroupViewController.swift | 4 ++- .../Group/QRScanViewController.swift | 18 ++++++++++ 7 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 NADA-iOS-forRelease/Resouces/Storyboards/Group/QRScan.storyboard create mode 100644 NADA-iOS-forRelease/Sources/ViewControllers/Group/QRScanViewController.swift diff --git a/NADA-iOS-forRelease.xcodeproj/project.pbxproj b/NADA-iOS-forRelease.xcodeproj/project.pbxproj index 131bfe0d..190710c5 100644 --- a/NADA-iOS-forRelease.xcodeproj/project.pbxproj +++ b/NADA-iOS-forRelease.xcodeproj/project.pbxproj @@ -57,6 +57,8 @@ 7766A40F274FEBE200714912 /* CardInGroupCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7766A40D274FEBE200714912 /* CardInGroupCollectionViewCell.swift */; }; 7766A410274FEBE200714912 /* CardInGroupCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7766A40E274FEBE200714912 /* CardInGroupCollectionViewCell.xib */; }; 77703157275005AA002CBD19 /* CardResultBottomSheetViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77703156275005AA002CBD19 /* CardResultBottomSheetViewController.swift */; }; + 7770315927500C49002CBD19 /* QRScan.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7770315827500C49002CBD19 /* QRScan.storyboard */; }; + 7770315B27500C7B002CBD19 /* QRScanViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7770315A27500C7B002CBD19 /* QRScanViewController.swift */; }; 777FF89B27359B7800BF69D3 /* Groups.swift in Sources */ = {isa = PBXBuildFile; fileRef = 777FF89A27359B7800BF69D3 /* Groups.swift */; }; 777FF89D2735B16B00BF69D3 /* GroupAddRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 777FF89C2735B16B00BF69D3 /* GroupAddRequest.swift */; }; 777FF89F27364B7B00BF69D3 /* GroupEditRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 777FF89E27364B7B00BF69D3 /* GroupEditRequest.swift */; }; @@ -162,6 +164,8 @@ 7766A40D274FEBE200714912 /* CardInGroupCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardInGroupCollectionViewCell.swift; sourceTree = ""; }; 7766A40E274FEBE200714912 /* CardInGroupCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = CardInGroupCollectionViewCell.xib; sourceTree = ""; }; 77703156275005AA002CBD19 /* CardResultBottomSheetViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardResultBottomSheetViewController.swift; sourceTree = ""; }; + 7770315827500C49002CBD19 /* QRScan.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = QRScan.storyboard; sourceTree = ""; }; + 7770315A27500C7B002CBD19 /* QRScanViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QRScanViewController.swift; sourceTree = ""; }; 777FF89A27359B7800BF69D3 /* Groups.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Groups.swift; sourceTree = ""; }; 777FF89C2735B16B00BF69D3 /* GroupAddRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupAddRequest.swift; sourceTree = ""; }; 777FF89E27364B7B00BF69D3 /* GroupEditRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupEditRequest.swift; sourceTree = ""; }; @@ -309,6 +313,7 @@ isa = PBXGroup; children = ( 3958F238270FFBBF00B100B2 /* GroupViewController.swift */, + 7770315A27500C7B002CBD19 /* QRScanViewController.swift */, ); path = Group; sourceTree = ""; @@ -318,6 +323,7 @@ children = ( 3958F23B270FFBD500B100B2 /* Group.storyboard */, 3936993A274A53C600684420 /* GroupEdit.storyboard */, + 7770315827500C49002CBD19 /* QRScan.storyboard */, ); path = Group; sourceTree = ""; @@ -828,6 +834,7 @@ F82FF81D2701EBCE00E57F8B /* CardCreation.storyboard in Resources */, 39369937274A4FCB00684420 /* NotoSansCJKkr-Medium.otf in Resources */, 392F7FB5274621F1008CDBF5 /* MoreListTableViewCell.xib in Resources */, + 7770315927500C49002CBD19 /* QRScan.storyboard in Resources */, 390515B82706CEBB00C5F7A5 /* Colors.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -939,6 +946,7 @@ F8FC43B526C020C10033E151 /* TempViews.swift in Sources */, F8C83FBB272F9F370009DF0D /* NetworkResult.swift in Sources */, 39D2E130270B43DA00AD0889 /* UIFont+Extension.swift in Sources */, + 7770315B27500C7B002CBD19 /* QRScanViewController.swift in Sources */, 39523E5B2701A48900536900 /* CardListTableViewCell.swift in Sources */, F8A9FE1A2743DC6B00BC60CE /* CardListInGroupRequest.swift in Sources */, 3981148E273BEBB300E28630 /* CardListEditRequest.swift in Sources */, diff --git a/NADA-iOS-forRelease/Resouces/Constants/Storyboard.swift b/NADA-iOS-forRelease/Resouces/Constants/Storyboard.swift index 76a33675..d9f768ca 100644 --- a/NADA-iOS-forRelease/Resouces/Constants/Storyboard.swift +++ b/NADA-iOS-forRelease/Resouces/Constants/Storyboard.swift @@ -17,6 +17,7 @@ extension Const { static let front = "Front" static let group = "Group" static let groupEdit = "GroupEdit" + static let qrScan = "QRScan" static let tabBar = "TabBar" static let cardCreationPreview = "CardCreationPreview" static let more = "More" diff --git a/NADA-iOS-forRelease/Resouces/Constants/ViewController.swift b/NADA-iOS-forRelease/Resouces/Constants/ViewController.swift index 89e82b9a..e51d6849 100644 --- a/NADA-iOS-forRelease/Resouces/Constants/ViewController.swift +++ b/NADA-iOS-forRelease/Resouces/Constants/ViewController.swift @@ -17,6 +17,7 @@ extension Const { static let frontViewController = "FrontViewController" static let groupViewController = "GroupViewController" static let groupEditViewController = "GroupEditViewController" + static let qrScanViewController = "QRScanViewController" static let tabBarViewController = "TabBarViewController" static let commonBottomSheetViewController = "CommonBottomSheetViewController" static let cardCreationPreviewViewController = "CardCreationPreviewViewController" diff --git a/NADA-iOS-forRelease/Resouces/Storyboards/Group/QRScan.storyboard b/NADA-iOS-forRelease/Resouces/Storyboards/Group/QRScan.storyboard new file mode 100644 index 00000000..0e18fd7f --- /dev/null +++ b/NADA-iOS-forRelease/Resouces/Storyboards/Group/QRScan.storyboard @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/AddWithIdBottomSheetViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/AddWithIdBottomSheetViewController.swift index 0253e329..e97dddb9 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/AddWithIdBottomSheetViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/AddWithIdBottomSheetViewController.swift @@ -96,6 +96,7 @@ class AddWithIdBottomSheetViewController: CommonBottomSheetViewController, UITex extension AddWithIdBottomSheetViewController { func textFieldShouldReturn(_ textField: UITextField) -> Bool { textField.resignFirstResponder() + // 서버 연결과 더불어... 검색 결과가 없으면 bottomsheet dismiss 하지 말고 hidden 풀어주기 hideBottomSheetAndPresent(nextBottomSheet: CardResultBottomSheetViewController()) return true } diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift index 5f054bb4..f06e63ac 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/Group/GroupViewController.swift @@ -18,7 +18,9 @@ class GroupViewController: UIViewController { } @IBAction func presentToAddWithQrView(_ sender: Any) { - + guard let nextVC = UIStoryboard.init(name: Const.Storyboard.Name.qrScan, bundle: nil).instantiateViewController(withIdentifier: Const.ViewController.Identifier.qrScanViewController) as? QRScanViewController else { return } + nextVC.modalPresentationStyle = .overFullScreen + self.present(nextVC, animated: true, completion: nil) } // 중간 그룹 이름들 나열된 뷰 diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/Group/QRScanViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/Group/QRScanViewController.swift new file mode 100644 index 00000000..567482d8 --- /dev/null +++ b/NADA-iOS-forRelease/Sources/ViewControllers/Group/QRScanViewController.swift @@ -0,0 +1,18 @@ +// +// QRScanViewController.swift +// NADA-iOS-forRelease +// +// Created by Yi Joon Choi on 2021/11/26. +// + +import UIKit + +class QRScanViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + +} From 15d0f8e3ee399b1b287d887e803d38f18dcd185a Mon Sep 17 00:00:00 2001 From: dlwns33 Date: Fri, 26 Nov 2021 15:27:15 +0900 Subject: [PATCH 13/13] =?UTF-8?q?[FEAT]=20#46=20const=20=EC=97=90=20bottom?= =?UTF-8?q?sheet=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NADA-iOS-forRelease/Resouces/Constants/ViewController.swift | 2 ++ .../BottomSheet/CommonBottomSheetViewController.swift | 1 + 2 files changed, 3 insertions(+) diff --git a/NADA-iOS-forRelease/Resouces/Constants/ViewController.swift b/NADA-iOS-forRelease/Resouces/Constants/ViewController.swift index e51d6849..13878dfb 100644 --- a/NADA-iOS-forRelease/Resouces/Constants/ViewController.swift +++ b/NADA-iOS-forRelease/Resouces/Constants/ViewController.swift @@ -22,6 +22,8 @@ extension Const { static let commonBottomSheetViewController = "CommonBottomSheetViewController" static let cardCreationPreviewViewController = "CardCreationPreviewViewController" static let addGroupBottomSheetViewController = "AddGroupBottomSheetViewController" + static let addWithIdBottomSheetViewController = "AddWithIdBottomSheetViewController" + static let cardResultBottomSheetViewController = "CardResultBottomSheetViewController" static let moreViewController = "MoreViewController" } } diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/CommonBottomSheetViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/CommonBottomSheetViewController.swift index f9e80c34..a0f68554 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/CommonBottomSheetViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/BottomSheet/CommonBottomSheetViewController.swift @@ -192,6 +192,7 @@ class CommonBottomSheetViewController: UIViewController { } } + // 바텀 시트 사라지고 바로 다시 다음 바텀 시트 올라오는 애니메이션 func hideBottomSheetAndPresent(nextBottomSheet: CommonBottomSheetViewController) { let safeAreaHeight = view.safeAreaLayoutGuide.layoutFrame.height let bottomPadding = view.safeAreaInsets.bottom