Swift MkMapView로 지도 응용 프로그램 만들기(04) - 추적 모드 전환(자체 제작 버튼)
기사 목록
Swift MkMapView로 지도 애플리케이션을 만들었습니다(기사 일람).
버튼에 붙인 그림을xcassets 포함
Image Set 추가
AppIcon에서 흰색 공간을 마우스 오른쪽 버튼으로 클릭하고 New Image Set을 누릅니다.
추가 Image Set에서 이미지 가져오기
가져올 이미지를 드래그 앤 드롭합니다.
롤링 모드, 위쪽, 위쪽, 위쪽 Image Set 추가
각 Image Set을 추가하여 이름을 변경합니다.
View Controller에 버튼 추가
View Controller에 버튼 추가
엔트(command+shift+l)에 Objects Library를 표시합니다.
Buton을 storyboard의 장치에 끌어 놓습니다.
버튼에 북쪽 이미지 설정하기
Image 드롭다운 작업에서 Image Set을 선택할 수 있으므로 추적 모드의 초기 값으로 북상 이미지를 설정합니다.
추가 버튼의 터치 감소 감지
터치가 떨어질 때call의 함수를 정의합니다
ViewController.swift: 터치가 떨어질 때Call의 함수를 정의합니다
@IBAction func trackingBtnThouchDown(_ sender: AnyObject) {
print("tracking Button Thouch Down!")
}
로그인 터치 하강 시Call 함수
Buton Object를 마우스 오른쪽 버튼으로 클릭하여 Touch Down의 오른쪽에 있는 ○을 구동하고 View Controller를 구동합니다.
출력을 Drack으로 정의하는 함수를 선택합니다.
▶터치 스크린이 감지되었는지 PC 에뮬레이터로 확인할 준비
터치 다운(1)에 정의된 함수는 Call입니다.
터치 후 추적 모드 전환
터치로 추적 모드 전환
위로 → 위로 뒤집기 → 스크롤 모드 → 위로 뒤집기 순서로 전환합니다.
ViewController.swift: 터치로 추적 모드 전환
@IBAction func trackingBtnThouchDown(_ sender: AnyObject) {
switch mapView.userTrackingMode {
case .follow:
mapView.userTrackingMode = .followWithHeading
break
case .followWithHeading:
mapView.userTrackingMode = .none
break
default:
mapView.userTrackingMode = .follow
break
}
}
현재 위치 업데이트 시 선택한 추적 모드에 따라 지도의 중심 위치를 변경합니다
Swift MkMapView로 지도 애플리케이션을 만들었다(03) - 현재 위치를 지도의 중심으로에서 이루어진 처리를 변경합니다.
ViewController.swift:변경 전
// CLLocationManagerのdelegate:現在位置取得
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations:[CLLocation]) {
mapView.userTrackingMode = .follow
변경 전에 현재 위치가 업데이트되면 무조건 지도의 중심 위치를 북쪽으로 업데이트합니다.ViewController.swift:변경 후
// CLLocationManagerのdelegate:現在位置取得
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations:[CLLocation]) {
switch mapView.userTrackingMode {
case .followWithHeading:
mapView.userTrackingMode = .followWithHeading
break
case .follow:
mapView.userTrackingMode = .follow
break
default:
break
}
변경 후 hedding up이면 hedding up에 대응하고 no-up이면 no-up으로 업데이트합니다.맵뷰는 맵을 위로 또는 위로 스크롤할 때 표시됩니다.userTrackingMode가 말했다.무단으로 none으로 변경되었기 때문에 상술한 설치는 스크롤 중에도 현재 위치로 되돌아오지 않습니다.
추적 모드에서 버튼 이미지 전환
Storyboard의 UIButton과 Image Set에 등록된 이미지를 연결하는 변수를 정의합니다.
ViewController.swift:변경 후
class ViewController: UIViewController,
CLLocationManagerDelegate,
UIGestureRecognizerDelegate {
// storyboardのUIButtonを紐付ける変数
@IBOutlet var trackingButton: UIButton!
// Image Setに登録した画像を紐付ける変数
let ImageHeadingUp :UIImage? = UIImage(named:"ImageHeadingUp")
let ImageScrollMode :UIImage? = UIImage(named:"ImageScrollMode")
let ImageNorthUp :UIImage? = UIImage(named:"ImageNorthUp")
그런 다음 storyboard의 UIButton과 변수를 연결합니다.tracking Buton을 선택합니다.
마지막(2)에 생성된 함수에 setImage()로 버튼 이미지를 변경하는 처리가 추가됩니다.
ViewController.swift: 추가 처리 후
@IBAction func trackingBtnThouchDown(_ sender: AnyObject) {
switch mapView.userTrackingMode {
case .follow:
mapView.userTrackingMode = .followWithHeading
trackingButton.setImage(ImageHeadingUp, for: .normal)
break
case .followWithHeading:
mapView.userTrackingMode = .none
trackingButton.setImage(ImageScrollMode, for: .normal)
break
default:
mapView.userTrackingMode = .follow
trackingButton.setImage(ImageNorthUp, for: .normal)
break
}
}
기사 목록
Swift MkMapView로 지도 애플리케이션을 만들었습니다(기사 일람).
Reference
이 문제에 관하여(Swift MkMapView로 지도 응용 프로그램 만들기(04) - 추적 모드 전환(자체 제작 버튼)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yuta-sasaki/items/d6fad14a81250c2a346b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Swift MkMapView로 지도 응용 프로그램 만들기(04) - 추적 모드 전환(자체 제작 버튼)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yuta-sasaki/items/d6fad14a81250c2a346b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)