Skip to content

Commit 71de307

Browse files
authored
Merge pull request #56 from lee-yeonwoo/#54-CourseSearchResultVC
[Feat] #54 CourseSearchVC UI 구현
2 parents 3a41c81 + 00cd943 commit 71de307

File tree

16 files changed

+566
-376
lines changed

16 files changed

+566
-376
lines changed

Runnect-iOS/Runnect-iOS.xcodeproj/project.pbxproj

Lines changed: 20 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -120,13 +120,12 @@
120120
CEEC6B402961C55000D00E1E /* MyPageVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEEC6B3F2961C55000D00E1E /* MyPageVC.swift */; };
121121
CEEC6B492961C5E200D00E1E /* SplashVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEEC6B482961C5E200D00E1E /* SplashVC.swift */; };
122122
CEEC6B4B2961D89700D00E1E /* CustomNavigationBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEEC6B4A2961D89700D00E1E /* CustomNavigationBar.swift */; };
123-
DA20D83F296696A000F1581F /* MapModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20D83E296696A000F1581F /* MapModel.swift */; };
124-
DA20D841296696C300F1581F /* MapCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20D840296696C300F1581F /* MapCollectionViewCell.swift */; };
125-
DA20D8432966977D00F1581F /* SearchResultVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20D8422966977D00F1581F /* SearchResultVC.swift */; };
126123
DA20D847296697A600F1581F /* MyCourseSelectVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20D846296697A600F1581F /* MyCourseSelectVC.swift */; };
127124
DA20D849296697B400F1581F /* CourseUploadVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20D848296697B400F1581F /* CourseUploadVC.swift */; };
128-
DA20D84E2966A9B300F1581F /* SearchVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20D84D2966A9B300F1581F /* SearchVC.swift */; };
129-
DA20D8502966C0D500F1581F /* MapCollectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20D84F2966C0D500F1581F /* MapCollectionViewController.swift */; };
125+
DA20D84E2966A9B300F1581F /* CourseSearchVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA20D84D2966A9B300F1581F /* CourseSearchVC.swift */; };
126+
DAD5A3D8296C6D9600C8166B /* AdImageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAD5A3D7296C6D9600C8166B /* AdImageCollectionViewCell.swift */; };
127+
DAD5A3DA296C6DA500C8166B /* TitleCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAD5A3D9296C6DA500C8166B /* TitleCollectionViewCell.swift */; };
128+
DAD5A3DC296C6DB800C8166B /* MapCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAD5A3DB296C6DB800C8166B /* MapCollectionViewCell.swift */; };
130129
/* End PBXBuildFile section */
131130

132131
/* Begin PBXFileReference section */
@@ -269,13 +268,12 @@
269268
CEEC6B462961C5BB00D00E1E /* .gitkeep */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitkeep; sourceTree = "<group>"; };
270269
CEEC6B482961C5E200D00E1E /* SplashVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplashVC.swift; sourceTree = "<group>"; };
271270
CEEC6B4A2961D89700D00E1E /* CustomNavigationBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomNavigationBar.swift; sourceTree = "<group>"; };
272-
DA20D83E296696A000F1581F /* MapModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapModel.swift; sourceTree = "<group>"; };
273-
DA20D840296696C300F1581F /* MapCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapCollectionViewCell.swift; sourceTree = "<group>"; };
274-
DA20D8422966977D00F1581F /* SearchResultVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchResultVC.swift; sourceTree = "<group>"; };
275271
DA20D846296697A600F1581F /* MyCourseSelectVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyCourseSelectVC.swift; sourceTree = "<group>"; };
276272
DA20D848296697B400F1581F /* CourseUploadVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseUploadVC.swift; sourceTree = "<group>"; };
277-
DA20D84D2966A9B300F1581F /* SearchVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchVC.swift; sourceTree = "<group>"; };
278-
DA20D84F2966C0D500F1581F /* MapCollectionViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapCollectionViewController.swift; sourceTree = "<group>"; };
273+
DA20D84D2966A9B300F1581F /* CourseSearchVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseSearchVC.swift; sourceTree = "<group>"; };
274+
DAD5A3D7296C6D9600C8166B /* AdImageCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdImageCollectionViewCell.swift; sourceTree = "<group>"; };
275+
DAD5A3D9296C6DA500C8166B /* TitleCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TitleCollectionViewCell.swift; sourceTree = "<group>"; };
276+
DAD5A3DB296C6DB800C8166B /* MapCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapCollectionViewCell.swift; sourceTree = "<group>"; };
279277
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>"; };
280278
/* End PBXFileReference section */
281279

@@ -555,9 +553,7 @@
555553
CE17F03C2961C32C00E1DED0 /* CourseDiscovery */ = {
556554
isa = PBXGroup;
557555
children = (
558-
DA20D83D2966968500F1581F /* Reuse */,
559556
CE17F0442961C3D900E1DED0 /* Views */,
560-
CE17F0432961C3D600E1DED0 /* VC */,
561557
);
562558
path = CourseDiscovery;
563559
sourceTree = "<group>";
@@ -618,6 +614,9 @@
618614
CE17F0432961C3D600E1DED0 /* VC */ = {
619615
isa = PBXGroup;
620616
children = (
617+
DA20D846296697A600F1581F /* MyCourseSelectVC.swift */,
618+
DA20D848296697B400F1581F /* CourseUploadVC.swift */,
619+
DA20D84D2966A9B300F1581F /* CourseSearchVC.swift */,
621620
CEEC6B3D2961C53700D00E1E /* CourseDiscoveryVC.swift */,
622621
);
623622
path = VC;
@@ -626,11 +625,11 @@
626625
CE17F0442961C3D900E1DED0 /* Views */ = {
627626
isa = PBXGroup;
628627
children = (
628+
DAD5A3DB296C6DB800C8166B /* MapCollectionViewCell.swift */,
629+
DAD5A3D9296C6DA500C8166B /* TitleCollectionViewCell.swift */,
630+
DAD5A3D7296C6D9600C8166B /* AdImageCollectionViewCell.swift */,
629631
CEEC6B432961C59F00D00E1E /* .gitkeep */,
630-
DA20D8422966977D00F1581F /* SearchResultVC.swift */,
631-
DA20D846296697A600F1581F /* MyCourseSelectVC.swift */,
632-
DA20D848296697B400F1581F /* CourseUploadVC.swift */,
633-
DA20D84D2966A9B300F1581F /* SearchVC.swift */,
632+
CE17F0432961C3D600E1DED0 /* VC */,
634633
);
635634
path = Views;
636635
sourceTree = "<group>";
@@ -777,8 +776,8 @@
777776
CE6655A8295D7F7D00C64E12 /* Presentation */ = {
778777
isa = PBXGroup;
779778
children = (
780-
CE17F0392961C28C00E1DED0 /* Splash */,
781779
CE6655C2295D836D00C64E12 /* SignIn */,
780+
CE17F0392961C28C00E1DED0 /* Splash */,
782781
CE6655AB295D7FBC00C64E12 /* TabBar */,
783782
CE17F03A2961C2E200E1DED0 /* CourseDrawing */,
784783
CE17F03D2961C34300E1DED0 /* CourseStorage */,
@@ -1082,16 +1081,6 @@
10821081
path = VC;
10831082
sourceTree = "<group>";
10841083
};
1085-
DA20D83D2966968500F1581F /* Reuse */ = {
1086-
isa = PBXGroup;
1087-
children = (
1088-
DA20D83E296696A000F1581F /* MapModel.swift */,
1089-
DA20D840296696C300F1581F /* MapCollectionViewCell.swift */,
1090-
DA20D84F2966C0D500F1581F /* MapCollectionViewController.swift */,
1091-
);
1092-
path = Reuse;
1093-
sourceTree = "<group>";
1094-
};
10951084
/* End PBXGroup section */
10961085

10971086
/* Begin PBXNativeTarget section */
@@ -1274,31 +1263,30 @@
12741263
CE14677C2965C1B100DCEA1B /* RunningRecordVC.swift in Sources */,
12751264
CE6B63D829673450003F900F /* ListEmptyView.swift in Sources */,
12761265
CE6655F6295D90B600C64E12 /* addToolBar.swift in Sources */,
1266+
DAD5A3DA296C6DA500C8166B /* TitleCollectionViewCell.swift in Sources */,
12771267
CEC2A68A2962ADCD00160BF7 /* RNMapView.swift in Sources */,
12781268
CE6655F0295D891B00C64E12 /* UITextView+.swift in Sources */,
12791269
CEC2A6922962BE2900160BF7 /* DepartureSearchVC.swift in Sources */,
12801270
CE6655EE295D88E600C64E12 /* UITextField+.swift in Sources */,
12811271
CE40BB1C2967E4910030ABCA /* RunningWaitingVC.swift in Sources */,
12821272
CE6B63D6296731F9003F900F /* ScrapCourseListView.swift in Sources */,
1283-
DA20D841296696C300F1581F /* MapCollectionViewCell.swift in Sources */,
12841273
CE6655F8295D90CF00C64E12 /* adjusted+.swift in Sources */,
12851274
CE4545CB295D7AF4003201E1 /* SceneDelegate.swift in Sources */,
12861275
A3BC2F3F2964706100198261 /* UploadedCourseInfoCVC.swift in Sources */,
12871276
CE6655FE295D912300C64E12 /* calculateTopInset.swift in Sources */,
12881277
CEEC6B492961C5E200D00E1E /* SplashVC.swift in Sources */,
12891278
CE6655D0295D85FF00C64E12 /* CancelBag.swift in Sources */,
1290-
DA20D83F296696A000F1581F /* MapModel.swift in Sources */,
12911279
A3BC2F432966A93100198261 /* CourseDetailVC.swift in Sources */,
1280+
DAD5A3D8296C6D9600C8166B /* AdImageCollectionViewCell.swift in Sources */,
12921281
CE18E890296C76C100FEB569 /* RNLocationModel.swift in Sources */,
12931282
A3BC2F3D296468E500198261 /* UploadedCourseInfoModel.swift in Sources */,
1294-
DA20D8502966C0D500F1581F /* MapCollectionViewController.swift in Sources */,
12951283
CE6655DC295D873500C64E12 /* UIButton+.swift in Sources */,
12961284
CE6655D4295D865B00C64E12 /* Publisher+UIControl.swift in Sources */,
12971285
CE0D9FD329648DA300CEB5CD /* CustomAlertVC.swift in Sources */,
12981286
CEB841702963360800BF8080 /* CountDownVC.swift in Sources */,
1299-
DA20D84E2966A9B300F1581F /* SearchVC.swift in Sources */,
13001287
CE320F38296C8FAB009F89A7 /* CourseDrawingResponseData.swift in Sources */,
13011288
CE18E894296C79B900FEB569 /* CourseDrawingRequestDto.swift in Sources */,
1289+
DA20D84E2966A9B300F1581F /* CourseSearchVC.swift in Sources */,
13021290
CE1006572968230800FD31FB /* DepartureLocationModel.swift in Sources */,
13031291
CE6655EC295D88D000C64E12 /* UITableView+.swift in Sources */,
13041292
CECBAD2F296C2F3C00AC8976 /* SignInRouter.swift in Sources */,
@@ -1314,13 +1302,13 @@
13141302
CE665608295D921500C64E12 /* setImage.swift in Sources */,
13151303
CE146770296568DC00DCEA1B /* RunTrackingVC.swift in Sources */,
13161304
DA20D849296697B400F1581F /* CourseUploadVC.swift in Sources */,
1305+
DAD5A3DC296C6DB800C8166B /* MapCollectionViewCell.swift in Sources */,
13171306
CE665612295D92E400C64E12 /* UserDefaultWrapper.swift in Sources */,
13181307
A3BC2F3A2963D0ED00198261 /* ActivityRecordInfoTVC.swift in Sources */,
13191308
CE665610295D92C200C64E12 /* setTextLineHeight.swift in Sources */,
13201309
CE6655E2295D87EB00C64E12 /* UIImage+.swift in Sources */,
13211310
A3BC2F322962E0DB00198261 /* GoalRewardInfoModel.swift in Sources */,
13221311
CEC2A68C2962AE1B00160BF7 /* RNStartMarker.swift in Sources */,
1323-
DA20D8432966977D00F1581F /* SearchResultVC.swift in Sources */,
13241312
CE5875A4296015D2005D967E /* Encodable+.swift in Sources */,
13251313
A3BC2F4129667A0D00198261 /* NicknameEditorVC.swift in Sources */,
13261314
CE0C23742966D62A00B45063 /* PagedView.swift in Sources */,

Runnect-iOS/Runnect-iOS/Global/Extension/Foundation+/Encodable+.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ extension Encodable {
1515
let data = try JSONEncoder().encode(self)
1616
guard let dictionary = try JSONSerialization.jsonObject(with: data, options: .allowFragments)
1717
as? [String: Any] else {
18-
throw NSError()
18+
throw NSError()
1919
}
2020

2121
return dictionary

Runnect-iOS/Runnect-iOS/Presentation/CourseDiscovery/Reuse/MapCollectionViewCell.swift

Lines changed: 0 additions & 122 deletions
This file was deleted.

Runnect-iOS/Runnect-iOS/Presentation/CourseDiscovery/Reuse/MapCollectionViewController.swift

Lines changed: 0 additions & 56 deletions
This file was deleted.

Runnect-iOS/Runnect-iOS/Presentation/CourseDiscovery/Reuse/MapModel.swift

Lines changed: 0 additions & 14 deletions
This file was deleted.
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
//
2+
// AdImageCollectionViewCell.swift
3+
// Runnect-iOS
4+
//
5+
// Created by YEONOO on 2023/01/10.
6+
//
7+
8+
import UIKit
9+
import SnapKit
10+
11+
import Then
12+
13+
class AdImageCollectionViewCell: UICollectionViewCell {
14+
15+
// MARK: - UI Components
16+
private let adImageView = UIImageView().then {
17+
$0.image = UIImage(named: "adimage")
18+
}
19+
// MARK: - Life cycle
20+
override init(frame: CGRect) {
21+
super.init(frame: frame)
22+
layout()
23+
}
24+
required init?(coder: NSCoder) {
25+
fatalError("init(coder:) has not been implemented")
26+
}
27+
}
28+
// MARK: - Extensions
29+
30+
extension AdImageCollectionViewCell {
31+
32+
// MARK: - Layout Helpers
33+
34+
func layout() {
35+
contentView.backgroundColor = .clear
36+
contentView.addSubview(adImageView)
37+
adImageView.snp.makeConstraints {
38+
$0.top.equalToSuperview()
39+
$0.leading.trailing.equalTo(self.contentView.safeAreaLayoutGuide)
40+
$0.height.equalTo(183)
41+
}
42+
43+
}
44+
}

0 commit comments

Comments
 (0)