⚠️ 문제: MapView에 배치한 UIButton의 isHighlighted 상태가 미해제되는 현상

MapView 위에 배치한 UIButton이 클릭 후 isHighlighted 상태가 해제되지 않는 현상이 나타났습니다.
❗️ 위험: 잘못된 addSubview 주체 선정
private func setLayout() {
mapView.addSubview(currentLocationButton)
currentLocationButton.snp.makeConstraints {
$0.bottom.trailing.equalTo(view.safeAreaLayoutGuide).inset(10)
$0.width.height.equalTo(60)
}
}
currentLocationButton을 mapView가 addSubview하고 있었는데,
그때문에 버튼과 mapView의 오버레이들의 제스처의 충돌이 발생한 것 같습니다.
✅ 해결:addSubview 주체 변경
private func setLayout() {
view.addSubview(currentLocationButton)
currentLocationButton.snp.makeConstraints {
$0.bottom.trailing.equalTo(view.safeAreaLayoutGuide).inset(10)
$0.width.height.equalTo(56)
}
}
기존에는 mapView에 배치되는 버튼이라 mapView에서 addSubview를 하였습니다.
하지만 view에서 addSubview를 하더라도
addSubview를 한 순서에 따라 Zindex를 가지므로 mapView 위에 버튼이 배치될 수 있습니다.
따라서 위와 같이 코드를 변경해주었습니다.

버튼의 정상 작동을 확인하였습니다.
'내일배움캠프 > Kickboard - Animality' 카테고리의 다른 글
| [트러블 슈팅] UICollectionView 상단에 여백 주기 (0) | 2026.03.11 |
|---|---|
| [트러블 슈팅] UICollectionView Cell deque시 NSAttributedString 생성 불가 현상 (0) | 2026.03.11 |
| [의사결정 기록] API Key 은닉화 방법 선택하기 (0) | 2026.03.10 |
| [의사결정 기록] 아키텍처 패턴 선정하기 (0) | 2026.03.10 |
| [프로젝트 소개] 공유 킥보드 앱 만들기 - Animality (0) | 2026.03.09 |