Как предотвратить первоначальное масштабирование MapKit при открытии? - PullRequest
0 голосов
/ 10 июля 2020

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

У меня есть карта некоторых мест, которые я получил из предыдущего раздела подготовить функцию. У меня есть for в l oop в поле зрения, что я загружаюсь, чтобы я мог делать аннотации и отображать их. Все это работает нормально, но когда я нажимаю кнопку «Показать карту» в предыдущем контроллере представления, он переводит меня в представление карты, а mapView автоматически увеличивает масштаб первой аннотации. Это может быть проблемой, потому что я хочу, чтобы пользователь видел все местоположения.

Мой вопрос: как мне остановить начальное масштабирование карты?

Ниже мой Код viewDidLoad.

Кстати, bin - это моя сущность в основных данных, а mapView - моя переменная IBOutlet, подключенная к Map Kit в раскадровке.

    override func viewDidLoad() {
        super.viewDidLoad()

        mapView.delegate = self
        for bin in bins {
        let geoCoder = CLGeocoder()
        geoCoder.geocodeAddressString(bin.address ?? "", completionHandler: { placemarks, error in
            if let error = error {
                print(error)
                return
            }

    
            if let placemarks = placemarks {
                // Get the first placemark
                let placemark = placemarks[0]

                let annotation = MKPointAnnotation()
                annotation.title = bin.type

                if let location = placemark.location {
                    annotation.coordinate = location.coordinate
                    // Display the annotation
                    self.mapView.showAnnotations([annotation], animated: true)
                    self.mapView.selectAnnotation(annotation, animated: true)
                
                }
            }
            
        }
    )}
}`

1 Ответ

0 голосов
/ 10 июля 2020

Эта строка: self.mapView.showAnnotations([annotation], animated: true) масштабирует карту, чтобы показать одну аннотацию, а не все ваши аннотации. Вам необходимо создать массив, содержащий все ваши аннотации, и показать это после того, как вы их все создали.

...