이벤트 소비와 전파의 차이는 주로 이벤트 핸들러에서 true와 false 반환 값에 의해 결정됨.
- 이벤트 소비 (Event Consuming):
- 이벤트 핸들러에서 true를 반환하면 이벤트가 더 이상 전파되지 않고 소비되었음을 의미함. 즉, 이후 다른 핸들러나 처리 로직으로 이벤트가 전달되지 않음.
- 예: marker2.touchHandler에서 true를 반환하면, 마커 2 터치 이벤트 이후 지도 터치 이벤트로 전파되지 않음.
- 이벤트 전파 (Event Propagation):
- 이벤트 핸들러에서 false를 반환하면 이벤트가 계속해서 전파되어 다른 핸들러나 처리 로직에서 처리될 수 있음.
- 예: marker1.touchHandler에서 false를 반환하면, 마커 1 터치 이벤트가 처리된 후에도 mapView(_:didTapMap:)에서 지도 터치 이벤트로 전파됨.
marker.touchHandler = { (overlay) in
if overlay is NMFMarker {
print("✅ 마커 터치 이벤트 발생: \(smokingArea.name)")
return true // 이벤트 소비 (false면 이벤트 전파)
}
return false
}
'iOS > swift' 카테고리의 다른 글
다크모드 / 라이트 모드 전환 및 적용하는 방법 | 벡터 이미지 적용하기 (0) | 2025.03.29 |
---|---|
[Swift] Void에 대해 아라보자 (0) | 2025.02.24 |
[Swift] Firestore 데이터는 불러오는데 마커가 사라진다면? (해결 방법 정리) (0) | 2025.02.18 |
[Swift] ListView Detail 표시하는 법 (0) | 2025.02.12 |
[Swift] MVC 디자인 패턴을 아라보자 (0) | 2025.02.09 |