2016-10-16 9 views
-1

В моем Storyboard в Swift app У меня есть UIViewController с MKMapView, растянутым на каждом краю экрана. Этого было достаточно для меня, чтобы импортировать MapKit, то я создал делегат:Есть ли способ прокрутки mkmapview в быстром автоматическом режиме?

class MyClass: MKMapViewDelegate { 

    @IBOutlet weak var mapView: MKMapView! 

    override func viewDidLoad(){ 
     super.viewDidLoad() 

     mapView.delegate = self 
    } 
} 

, а затем, когда я запускал приложение, я увидел карту красиво по центру над моей страной.

Я хочу реализовать функцию, которая работает следующим образом:

, когда пользователь открывает эту точку зрения, он видит карту, но с центром на месте рядом с моей родной страной, то карта может прокручиваться автоматически до центра к моей родной стране. Это даже достижимо?

Например, если бы я жил в США и открыл карту, я бы увидел Тихий океан, а затем карта прокрутила, чтобы показать мне территорию США.

+0

Вы можете настроить карту, как хотите. Вы можете показать любое место на любом уровне масштабирования. Или вы можете показать место, где находится пользователь (если пользователь предоставляет разрешение). – matt

+0

Хорошо, но есть ли возможность как-то вычислить место рядом с моей страной, а затем прокрутить оттуда до исходного положения? – user3766930

+0

Конечно. Вы можете показать любую широту/долготу, которая вам нравится, и вы можете прокручивать ее в любом другом месте. – matt

ответ

1

Конечно, это возможно. MKMapView имеет метод setRegion(_:animated:).

Вы можете установить область карты на место в Тихоокеанском регионе, подождать несколько секунд (используя таймер или dispatch_after), а затем позвонить setRegion(_:animated:), чтобы переместить карту, чтобы она была центрирована по вашему текущему местоположению.

+0

Спасибо Duncan, всего два дополнительных вопроса - конечно, регион будет работать, но он будет очень быстро прокручиваться до моего местоположения - есть ли способ - вместо того, чтобы откладывать его с dispatch_after - кодировать его, чтобы прокрутка была гладкой и медленной? Я имею в виду, что если первый регион будет тихим океаном, тогда он будет прокручиваться до территории США, например. 3-5 секунд, медленно показывая все остальное по дороге? – user3766930

+0

Не то, чтобы я знал. Возможно, серия setRegion вызывает с задержками между ними. Это было бы хрупким, хотя, поскольку, если есть задержка загрузки содержимого карты, это не будет работать правильно. –

 Смежные вопросы

  • Нет связанных вопросов^_^