Skip to content

Commit 5fa03b8

Browse files
committed
feat/#109: 개별마커별 사이즈 재설정
1 parent 8719640 commit 5fa03b8

File tree

3 files changed

+30
-20
lines changed

3 files changed

+30
-20
lines changed

Poppool/Poppool/Presentation/Scene/Map/MapView/MapInteractionHandling.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ protocol MapInteractionHandling: AnyObject {
1515
var clusterMarkerDictionary: [String: NMFMarker] { get set }
1616
var clusteringManager: ClusteringManager { get }
1717

18-
// 마커 관련 메서드
1918
func updateMarkerStyle(marker: NMFMarker, selected: Bool, isCluster: Bool, count: Int, regionName: String)
2019
func handleSingleStoreTap(_ marker: NMFMarker, store: MapPopUpStore) -> Bool
2120
func handleRegionalClusterTap(_ marker: NMFMarker, clusterData: ClusterMarkerData) -> Bool

Poppool/Poppool/Presentation/Scene/Map/MapView/MapViewController+InteractionHandling.swift

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,44 @@ import UIKit
22
import NMapsMap
33
import ReactorKit
44

5-
extension MapViewController {
5+
extension MapViewController: MapInteractionHandling {
66

77
// MARK: - Marker Style Handler
88
func updateMarkerStyle(
9-
marker: NMFMarker,
10-
selected: Bool,
11-
isCluster: Bool,
12-
count: Int = 1,
13-
regionName: String = ""
14-
) {
15-
markerStyler.applyStyle(
16-
to: marker,
17-
selected: selected,
18-
isCluster: isCluster,
19-
count: count,
20-
regionName: regionName
21-
)
22-
}
23-
// MARK: - Map Tap Handler
9+
marker: NMFMarker,
10+
selected: Bool,
11+
isCluster: Bool,
12+
count: Int = 1,
13+
regionName: String = ""
14+
) {
15+
if selected {
16+
marker.width = 44
17+
marker.height = 44
18+
marker.iconImage = NMFOverlayImage(name: "TapMarker")
19+
} else if isCluster {
20+
marker.width = 36
21+
marker.height = 36
22+
marker.iconImage = NMFOverlayImage(name: "cluster_marker")
23+
} else {
24+
marker.width = 32
25+
marker.height = 32
26+
marker.iconImage = NMFOverlayImage(name: "Marker")
27+
}
28+
29+
marker.captionText = ""
30+
31+
marker.anchor = CGPoint(x: 0.5, y: 1.0)
32+
33+
34+
}
2435
@objc func handleMapViewTap(_ gesture: UITapGestureRecognizer) {
25-
// 리스트 뷰가 보이는 상태가 아닌 경우에만 처리
2636
guard !isMovingToMarker else { return }
2737

28-
// 선택된 마커 해제
2938
if let currentMarker = self.currentMarker {
3039
updateMarkerStyle(marker: currentMarker, selected: false, isCluster: false)
3140
self.currentMarker = nil
3241
}
3342

34-
// 툴팁 제거 및 관련 상태 초기화
3543
currentTooltipView?.removeFromSuperview()
3644
currentTooltipView = nil
3745
currentTooltipStores = []

Poppool/Poppool/Presentation/Scene/Map/MapView/MarkerStyling.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ struct DefaultMarkerStyler: MarkerStyling {
2222
// MapMarker 인스턴스 생성
2323
let markerView = MapMarker()
2424

25+
// 마커 뷰에 속성 주입
2526
markerView.injection(with: MapMarker.Input(
2627
isSelected: selected,
2728
isCluster: isCluster,
@@ -32,6 +33,7 @@ struct DefaultMarkerStyler: MarkerStyling {
3233

3334
markerView.backgroundColor = .clear
3435

36+
// 레이아웃 업데이트
3537
markerView.layoutIfNeeded()
3638
let fittingSize = markerView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize)
3739
markerView.frame = CGRect(origin: .zero, size: fittingSize)
@@ -59,6 +61,7 @@ struct DefaultMarkerStyler: MarkerStyling {
5961

6062
marker.captionText = ""
6163

64+
// 마커 앵커 설정
6265
marker.anchor = CGPoint(x: 0.5, y: 1.0)
6366
}
6467

0 commit comments

Comments
 (0)