Swift MkMapView로 지도 응용 프로그램 만들기(05) - 추적 모드 전환(자동)

기사 목록


Swift MkMapView로 지도 애플리케이션을 만들었습니다(기사 일람).

보태다


(04) - 추적 모드 전환(자동 버튼) 자체 제작 버튼과 전환 처리를 실시했지만 이번에는 MKUser Tracking Button에서 추적 모드를 자동으로 전환한다.

MKUserTrackingButon으로 버튼 표시


MKUserTrackingButon에 추적 단추를 표시합니다.
ViewController.MKUserTrackingButton에 추적 단추 표시
// トラッキングボタン表示
let trakingBtn = MKUserTrackingButton(mapView: mapView)
trakingBtn.layer.backgroundColor = UIColor(white: 1, alpha: 0.7).cgColor
self.view.addSubview(trakingBtn)
시뮬레이터를 시작할 때 다음과 같이 표시되지만, 단추를 눌러도 추적 모드가 바뀌지 않습니다.

버튼을 누르지 않지만 스크롤할 때 추적 단추의 표시를 스크롤 모드로 전환합니다.

추적 모드의 상태를 감지하고 버튼 표시를 자동으로 전환하는 것을 알 수 있습니다.
버튼을 누를 수 없는 것은 배치된 위치에 문제가 있기 때문이다.

버튼 위치 변경


trakingBtn.프레임을 사용하여 표시 위치와 치수를 지정합니다.
ViewController.swift:trakingBtn.프레임에서 표시 위치 및 크기 지정
let trakingBtn = MKUserTrackingButton(mapView: mapView)
trakingBtn.layer.backgroundColor = UIColor(white: 1, alpha: 0.7).cgColor
trakingBtn.frame = CGRect(x:40, y:730, width:40, height:40)
self.view.addSubview(trakingBtn)
수행 결과는 다음과 같습니다.
<hedding up>

<스크롤 모드>

알파:0.7 통과.
1.0(비투과)~0.1(최투과).
[북상]

특정 장치의 화면 크기에 의존하지 않도록 버튼 구성


장치의 화면 크기를 가져오고width/height 단말기와 차이점을 지정하여 대상을 배치합니다.
이번에는 왼쪽 하단에 배치해서 하이트 끝의 차이를 지정하려고 합니다.
ViewController.swift: 장치의 화면 크기 가져오기
// デバイスの画面サイズを取得する
let dispSize: CGSize = UIScreen.main.bounds.size
let height = Int(dispSize.height)
ViewController.swift:구성 버튼
trakingBtn.frame = CGRect(x:40, y:height - 82, width:40, height:40)
아이폰X에서 하이트는 812이기 때문에 상기 이미지와 같은 위치에 표시됩니다.

기사 목록


Swift MkMapView로 지도 애플리케이션을 만들었습니다(기사 일람).

좋은 웹페이지 즐겨찾기