Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 12 additions & 20 deletions Runnect-iOS/Runnect-iOS.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -108,11 +108,9 @@
CEEC6B4B2961D89700D00E1E /* CustomNavigationBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEEC6B4A2961D89700D00E1E /* CustomNavigationBar.swift */; };
DA20D83F296696A000F1581F /* MapModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20D83E296696A000F1581F /* MapModel.swift */; };
DA20D841296696C300F1581F /* MapCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20D840296696C300F1581F /* MapCollectionViewCell.swift */; };
DA20D8432966977D00F1581F /* SearchResultViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20D8422966977D00F1581F /* SearchResultViewController.swift */; };
DA20D8452966979100F1581F /* DiscoveryDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20D8442966979100F1581F /* DiscoveryDetailViewController.swift */; };
DA20D847296697A600F1581F /* PlusDetailVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20D846296697A600F1581F /* PlusDetailVC.swift */; };
DA20D849296697B400F1581F /* UploadVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20D848296697B400F1581F /* UploadVC.swift */; };
DA20D84B296697C600F1581F /* UploadResultViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20D84A296697C600F1581F /* UploadResultViewController.swift */; };
DA20D8432966977D00F1581F /* SearchResultVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20D8422966977D00F1581F /* SearchResultVC.swift */; };
DA20D847296697A600F1581F /* MyCourseSelectVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20D846296697A600F1581F /* MyCourseSelectVC.swift */; };
DA20D849296697B400F1581F /* CourseUploadVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20D848296697B400F1581F /* CourseUploadVC.swift */; };
DA20D84E2966A9B300F1581F /* SearchVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20D84D2966A9B300F1581F /* SearchVC.swift */; };
DA20D8502966C0D500F1581F /* MapCollectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20D84F2966C0D500F1581F /* MapCollectionViewController.swift */; };
/* End PBXBuildFile section */
Expand Down Expand Up @@ -231,11 +229,9 @@
CEEC6B4A2961D89700D00E1E /* CustomNavigationBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomNavigationBar.swift; sourceTree = "<group>"; };
DA20D83E296696A000F1581F /* MapModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapModel.swift; sourceTree = "<group>"; };
DA20D840296696C300F1581F /* MapCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapCollectionViewCell.swift; sourceTree = "<group>"; };
DA20D8422966977D00F1581F /* SearchResultViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchResultViewController.swift; sourceTree = "<group>"; };
DA20D8442966979100F1581F /* DiscoveryDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DiscoveryDetailViewController.swift; sourceTree = "<group>"; };
DA20D846296697A600F1581F /* PlusDetailVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlusDetailVC.swift; sourceTree = "<group>"; };
DA20D848296697B400F1581F /* UploadVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadVC.swift; sourceTree = "<group>"; };
DA20D84A296697C600F1581F /* UploadResultViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadResultViewController.swift; sourceTree = "<group>"; };
DA20D8422966977D00F1581F /* SearchResultVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchResultVC.swift; sourceTree = "<group>"; };
DA20D846296697A600F1581F /* MyCourseSelectVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyCourseSelectVC.swift; sourceTree = "<group>"; };
DA20D848296697B400F1581F /* CourseUploadVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseUploadVC.swift; sourceTree = "<group>"; };
DA20D84D2966A9B300F1581F /* SearchVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchVC.swift; sourceTree = "<group>"; };
DA20D84F2966C0D500F1581F /* MapCollectionViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapCollectionViewController.swift; sourceTree = "<group>"; };
E837271A78E1C0A0C30789BF /* Pods-Runnect-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runnect-iOS.release.xcconfig"; path = "Target Support Files/Pods-Runnect-iOS/Pods-Runnect-iOS.release.xcconfig"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -475,11 +471,9 @@
isa = PBXGroup;
children = (
CEEC6B432961C59F00D00E1E /* .gitkeep */,
DA20D8422966977D00F1581F /* SearchResultViewController.swift */,
DA20D8442966979100F1581F /* DiscoveryDetailViewController.swift */,
DA20D846296697A600F1581F /* PlusDetailVC.swift */,
DA20D848296697B400F1581F /* UploadVC.swift */,
DA20D84A296697C600F1581F /* UploadResultViewController.swift */,
DA20D8422966977D00F1581F /* SearchResultVC.swift */,
DA20D846296697A600F1581F /* MyCourseSelectVC.swift */,
DA20D848296697B400F1581F /* CourseUploadVC.swift */,
DA20D84D2966A9B300F1581F /* SearchVC.swift */,
);
path = Views;
Expand Down Expand Up @@ -1000,7 +994,7 @@
A3BC2F2B2962C3D500198261 /* GoalRewardInfoVC.swift in Sources */,
CE665606295D91C500C64E12 /* makeVibrate.swift in Sources */,
CE66560A295D924A00C64E12 /* Result+.swift in Sources */,
DA20D847296697A600F1581F /* PlusDetailVC.swift in Sources */,
DA20D847296697A600F1581F /* MyCourseSelectVC.swift in Sources */,
CE66560E295D92A500C64E12 /* setStatusBarBackgroundColor.swift in Sources */,
CE9291292965E01D0010959C /* RNTimeFormatter.swift in Sources */,
CE0C23792966D6AF00B45063 /* ViewPager.swift in Sources */,
Expand All @@ -1012,7 +1006,6 @@
CE4545C9295D7AF4003201E1 /* AppDelegate.swift in Sources */,
CE6655C8295D849F00C64E12 /* StringLiterals.swift in Sources */,
CEEC6B3E2961C53700D00E1E /* CourseDiscoveryVC.swift in Sources */,
DA20D8452966979100F1581F /* DiscoveryDetailViewController.swift in Sources */,
CE6655E0295D87D200C64E12 /* UIDevice+.swift in Sources */,
CE17F0382961BF8B00E1DED0 /* FontLiterals.swift in Sources */,
CE6655E8295D889600C64E12 /* UISwitch+.swift in Sources */,
Expand Down Expand Up @@ -1055,15 +1048,14 @@
CEEC6B402961C55000D00E1E /* MyPageVC.swift in Sources */,
CE665608295D921500C64E12 /* setImage.swift in Sources */,
CE146770296568DC00DCEA1B /* RunTrackingVC.swift in Sources */,
DA20D849296697B400F1581F /* UploadVC.swift in Sources */,
DA20D849296697B400F1581F /* CourseUploadVC.swift in Sources */,
CE665612295D92E400C64E12 /* UserDefaultWrapper.swift in Sources */,
A3BC2F3A2963D0ED00198261 /* ActivityRecordInfoTVC.swift in Sources */,
CE665610295D92C200C64E12 /* setTextLineHeight.swift in Sources */,
CE6655E2295D87EB00C64E12 /* UIImage+.swift in Sources */,
A3BC2F322962E0DB00198261 /* GoalRewardInfoModel.swift in Sources */,
CEC2A68C2962AE1B00160BF7 /* RNStartMarker.swift in Sources */,
DA20D84B296697C600F1581F /* UploadResultViewController.swift in Sources */,
DA20D8432966977D00F1581F /* SearchResultViewController.swift in Sources */,
DA20D8432966977D00F1581F /* SearchResultVC.swift in Sources */,
CE5875A4296015D2005D967E /* Encodable+.swift in Sources */,
A3BC2F4129667A0D00198261 /* NicknameEditorVC.swift in Sources */,
CE0C23742966D62A00B45063 /* PagedView.swift in Sources */,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,57 +49,56 @@ final class CourseDiscoveryVC: UIViewController {
let collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout)
collectionView.backgroundColor = .clear
collectionView.translatesAutoresizingMaskIntoConstraints = false
collectionView.isScrollEnabled = true
collectionView.isScrollEnabled = false
collectionView.showsVerticalScrollIndicator = false
collectionView.delegate = self
collectionView.dataSource = self
return collectionView
}()

// MARK: - Constants

var mapList: [MapModel] = [
MapModel(mapImage: "", title: "제목제목제목제목", location: "00동00구"),
MapModel(mapImage: "", title: "제목제목제목제목", location: "00동00구"),
MapModel(mapImage: "", title: "제목제목제목제목", location: "00동00구"),
MapModel(mapImage: "", title: "제목제목제목제목", location: "00동00구"),
MapModel(mapImage: "", title: "제목제목제목제목", location: "00동00구"),
MapModel(mapImage: "", title: "제목제목제목제목", location: "00동00구"),
MapModel(mapImage: "", title: "제목제목제목제목", location: "00동00구"),
MapModel(mapImage: "", title: "제목제목제목제목", location: "00동00구")
]
final let inset: UIEdgeInsets = UIEdgeInsets(top: 10, left: 16, bottom: 0, right: 16)
final let lineSpacing: CGFloat = 10
final let interItemSpacing: CGFloat = 20
final let height: CGFloat = 164
final let collectionViewInset = UIEdgeInsets(top: 28, left: 16, bottom: 28, right: 16)
final let itemSpacing: CGFloat = 10
final let lineSpacing: CGFloat = 20

// MARK: - View Life Cycle

override func viewDidLoad () {
super.viewDidLoad()
register()
setNavigationBar()
setDelegate()
layout()
setAddTarget()
self.tabBarController?.tabBar.isHidden = false
}
}
// MARK: - Methods

extension CourseDiscoveryVC {

private func setDelegate() {
mapCollectionView.delegate = self
mapCollectionView.dataSource = self
}
private func register() {
mapCollectionView.register(CourseListCVC.self,
forCellWithReuseIdentifier: CourseListCVC.className)
}
private func setAddTarget() {
self.searchButton.addTarget(self, action: #selector(presentToSearchVC), for: .touchUpInside)
self.plusButton.addTarget(self, action: #selector(presentToDiscoveryVC), for: .touchUpInside)
self.searchButton.addTarget(self, action: #selector(pushToSearchVC), for: .touchUpInside)
self.plusButton.addTarget(self, action: #selector(pushToDiscoveryVC), for: .touchUpInside)
}
}

// MARK: - @objc Function

extension CourseDiscoveryVC {
@objc private func presentToSearchVC() {
@objc private func pushToSearchVC() {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍👍

let nextVC = SearchVC()
nextVC.modalPresentationStyle = .overFullScreen
self.present(nextVC, animated: true)
self.navigationController?.pushViewController(nextVC, animated: true)
}
@objc private func presentToDiscoveryVC() {
let nextVC = PlusDetailVC()
@objc private func pushToDiscoveryVC() {
let nextVC = MyCourseSelectVC()
self.navigationController?.pushViewController(nextVC, animated: true)
}
}
Expand Down Expand Up @@ -165,43 +164,44 @@ extension CourseDiscoveryVC {
make.bottom.equalTo(self.view.safeAreaLayoutGuide).inset(20)
}
}
// MARK: - register

private func register() {
mapCollectionView.register(MapCollectionViewCell.self, forCellWithReuseIdentifier: MapCollectionViewCell.identifier)
}
}

// MARK: - UICollectionViewDelegateFlowLayout
// MARK: - UICollectionViewDelegate, UICollectionViewDataSource

extension CourseDiscoveryVC: UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let screenWidth = UIScreen.main.bounds.width
let doubleCellWidth = screenWidth - inset.left - inset.right - interItemSpacing
return CGSize(width: doubleCellWidth / 2, height: 164)
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return lineSpacing
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
return interItemSpacing
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
return inset
}
extension CourseDiscoveryVC: UICollectionViewDelegate, UICollectionViewDataSource {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 15
}
// MARK: - UICollectionViewDataSource

extension CourseDiscoveryVC: UICollectionViewDataSource {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return mapList.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
guard let mapCell = collectionView.dequeueReusableCell(
withReuseIdentifier: MapCollectionViewCell.identifier, for: indexPath)
as? MapCollectionViewCell else { return UICollectionViewCell() }
mapCell.dataBind(model: mapList[indexPath.item])

return mapCell
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: CourseListCVC.className,
for: indexPath)
as? CourseListCVC else { return UICollectionViewCell() }
cell.setCellType(type: .all)
return cell
}
}

// MARK: - UICollectionViewDelegateFlowLayout

extension CourseDiscoveryVC: UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let cellWidth = (UIScreen.main.bounds.width - (self.itemSpacing + 2*self.collectionViewInset.left)) / 2
let cellHeight = CourseListCVCType.getCellHeight(type: .all, cellWidth: cellWidth)

return CGSize(width: cellWidth, height: cellHeight)
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
return self.collectionViewInset
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
return self.itemSpacing
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return self.lineSpacing
}

}
Loading