2015-05-20 4 views
0

легко воспроизвести: - создать новый проект - положить MKMapView на экране - попробуйте вращать его с 2-мя пальцамиMKMapView не оставаясь повернуты

Она вращается немного и останавливается, и когда вы отпустите пальцы, он возвращается в исходное положение.

Как заставить его оставаться поворотным? И вращайте столько, сколько я хочу?

Я использую последнюю версию iOS (8.something), симулятор iPhone 6 и Swift.

ответ

3

я понял проблему. На самом деле нет решения, что происходит, так это то, что MKMapView не позволяет вам вращаться, если область карты слишком большая. Если вы увеличиваете масштаб, вы можете нормально вращаться.

1

Пожалуйста, попробуйте это Gloabally заявляют:

let regionRadius: CLLocationDistance = 1000 

И в viewdidload:

let initialLocation = CLLocation(latitude: 21.282778, longitude: -157.829444) 
    centerMapOnLocation(initialLocation) 

А затем создать вспомогательный класс:

func centerMapOnLocation(location: CLLocation) { 
     let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate, 
      regionRadius * 2.0, regionRadius * 2.0) 
     mapview.setRegion(coordinateRegion, animated: true) 
    } 
+0

Пожалуйста, добавьте некоторые детали, объясняющие ответ. – Jayan

+0

Нет, ничего не меняет. –

+0

@RodrigoRuiz, пожалуйста, показать код –

0

Попробуйте с rotateEnabled свойством MKMapView:

rotateEnabled - Булево значение, указывающее, используется ли информация заголовка карты.

Декларация

СВИФТ вар rotateEnabled: Bool

Когда это свойство имеет значение YES и действительная камера связана с картой, угол курса камеры используется для вращения плоскости карты вокруг его центральной точкой. Если для этого свойства установлено значение НЕТ, угол заголовка камеры игнорируется, и карта всегда ориентирована так, чтобы истинный север находился в верхней части вида карты.

+0

Это свойство уже установлено в true (или YES в Objective-C) по умолчанию –

0

Вы должны переопределить CLLocationManager.didUpdateLocations (часть CLLocationManagerDelegate), чтобы получить уведомление, когда менеджер местоположения извлекает текущее местоположение и ничего не делать там:

func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) { 
    // Don't do update the map to the new location 
} 
Смежные вопросы