[iOS/Swift] MapKit Annotation displayPriority 지정하기
·
iOS/🔎 swift 정리하기
같은 장소에 어노테이션이 두개가 표시될 때 나는 고정으로 있는 어노테이션 보다 검색 결과 어노테이션이 더 상단으로 보이게 하고싶었다. 이전까지 나의 결과는 검색 결과 어노테이션이 가장 뒤로 가버리는 맘에 안드는 결과가 나왔다. 이 문제를 해결하기 위한 방법이 displayPriority이다! annotation view의 우선순위를 지정해주는 프로퍼티이다. MKMapViewDelegate의 viewFor에서 어노테이션을 등록할 때 우선순위를 지정해줬다. 기본으로 나타나 있는 어노테이션에는 .defaultLow 값을, 검색 결과로 위에 보여줄 annotation에는 .defaultHigh 값을 주었더니 원하는 결과가 나왔다! .defaultHigh가 아니어도 디폴트 값인 .required 여도 같은 결과가..
MapKit CustomAnnotation
·
iOS/🔎 swift 정리하기
플젝 진행하면서 정리한 내용입니다! 틀린 내용이 있을 수도 허접 할 수도 있습니다.. 지적 대 환영, 꿀팁 대 환영 맵킷에 대한 정보는 정말이지 별로 없다.. 정리하고 보니 별거 아닌 내용을 얼마나 붙잡고 있던걸까 흑흑 1. 커스텀 어노테이션 등록하기 (viewFor) 2. 어노테이션 선택에 따라 디자인 변경하기 (didSelect, didDeSelect) 3. 식별자가 다른 어노테이션을 만들어 서로 다른 기능을 하도록 구현하기 💡 커스텀 어노테이션 등록하기 해당 부분은 검색하면 정보가 꽤나 많이 나온다. 때문에 어렵지 않다. mapkit delegate는 연결되어 있을 것이고, delegate를 채택한 후 진행한다. MKMapViewDelegate에 구현된 viewFor 매개변수가 있는 메서드를 사용한..
[iOS/Swift] MapKit - 원하는 곳에 어노테이션을 찍어보자
·
iOS/🔎 swift 정리하기
맵뷰에서 선택하는 곳에 어노테이션을 찍어보자 1. 맵뷰에 탭 제스쳐를 추가한다. let tapGesture = UITapGestureRecognizer(target: self, action: #selector(mapViewTapped(_ :))) mapView.addGestureRecognizer(tapGesture) 2. sender.location(in: )을 통해 임의로 탭한 위치를 가져온다. @objc private func mapViewTapped(_ sender: UITapGestureRecognizer) { let location: CGPoint = sender.location(in: mainView.mapView) let mapPoint: CLLocationCoordinate2D = mai..
[iOS/Swift] Realm - 백업 및 복구 구현하기
·
iOS/🔎 swift 정리하기
💡 백업 / 복구 개인 앱의 경우 개개인에게 백업 복구의 책임을 넘긴다. 개발자 → 기능만 제공, 백업 알아서,, 구글 드라이브, 드랍박스로 백업하기 → 써드파티 프로그램의 정책으로 유지보수 비용이 높다 아이폰 파일 앱 사용하여 백업 복구하도록 하기 1. realm 파일 자체를 압축 마이그레이션 대응이 잘 되어야 한다. 사용자가 백업해두고 한참 뒤에 복구할 수 있기 때문 realm 파일을 복구할 때는 복구 완료 후 앱을 껐다 켜야 함 2. json으로 압축하기 다른 sql을 쓰더라도 대응하기 좋음 🔎 realm 파일 압축하기 백업하고자 하는 파일들의 경로 배열 생성 var urlPaths = [URL]() 도큐먼트 위치 guard let path = documentDirectoryPath() else {..