2016-10-16 8 views
-1

StoryboardSwift app에 나는 UIViewController이고 MKMapView은 화면의 각 가장자리까지 뻗어 있습니다.mkmapview를 신속하게 스크롤하는 방법은 무엇입니까?

class MyClass: MKMapViewDelegate { 

    @IBOutlet weak var mapView: MKMapView! 

    override func viewDidLoad(){ 
     super.viewDidLoad() 

     mapView.delegate = self 
    } 
} 

내가 응용 프로그램을 실행할 때 다음, 나는지도 잘 내 나라 위에 중심 보았다 : 나를 MapKit를 가져 오는 것은 충분했다, 그때 대리자를 설정합니다.

사용자가이보기를 열 때, 그는지도를보고,하지만 내 고향 옆에있는 곳을 중심으로, 다음지도는 중앙에 자동으로 스크롤 할 수 있습니다 :

나는 이런 식으로 작동하는 기능을 구현하려면 우리 집으로. 그것은 심지어 달성 가능한가?

예를 들어, 내가 미국에 살고지도를 열면 태평양이 보일 것이고지도가 스크롤되어 미국 영토가 표시됩니다.

+0

지도를 원하는대로 구성 할 수 있습니다. 모든 확대/축소 수준에서 어떤 지점을 표시 할 수 있습니다. 또는 사용자가있는 위치를 표시 할 수 있습니다 (사용자가 권한을 부여한 경우). – matt

+0

좋아,하지만 내 국가 옆에 자리를 계산 한 다음 거기에서 원래 위치로 스크롤 할 가능성이 있습니까? – user3766930

+0

물론입니다. 원하는 위도/경도를 표시 할 수 있으며, 원하는 곳으로 스크롤 할 수 있습니다. – matt

답변

1

물론 가능합니다. MKMapView의 메소드는 setRegion(_:animated:)입니다.

태평양 지역의지도 지역을 설정하고 타이머 또는 dispatch_after을 사용하여 몇 초 동안 기다린 다음 setRegion(_:animated:)으로 전화하여 현재 위치가 중앙에 오도록지도를 이동할 수 있습니다.

+0

Duncan에게 감사드립니다. 두 가지 추가 질문 - 지역 설정은 물론 작동하지만, 실제로는 내 위치로 스크롤됩니다. - dispatch_after로 지연하는 대신 - 스크롤링 자체가 부드럽고 느리기 때문에 코딩하는 방법이 있습니까? 첫 번째 지역이 태평양이면 예를 들어 미국령으로 스크롤됩니다. 3-5 초. 천천히 다른 모든 것을 보여 주나요? – user3766930

+0

내가 아는 것은 아닙니다. 일련의 setRegion 호출 사이에 지연이있을 수 있습니다. 지도 내용을로드하는 데 지연이 있으면 올바르게 작동하지 않기 때문에 그럴 수도 있습니다. –