СЛАЙДЕР в MapKit - Как реализовать ZOOM с помощью UISlider? - PullRequest
0 голосов
/ 14 января 2019

У меня уже есть несколько пользовательских аннотаций с разными цветами кластеризации, выполненных с помощью MapKit и data.plist.

У меня есть ползунок под картой с меткой, уже меняющий внутренние номера метки с помощью ползунка.

Теперь я хочу увеличить карту при смене ползунка.

Я искал видео Swift 4 и переполнение стека.

Я начал со следующего кода:

import MapKit

class ViewController: UIViewController {
    @IBOutlet weak var mapView: MKMapView!
    @IBOutlet weak var distanceSlider: UISlider!
    @IBOutlet weak var sliderValue: UILabel!

    @IBAction func changeSliderValue(_ sender: UISlider) {
        showSliderValue()
        changeZoomLevelWithSlider()
    }

    func showSliderValue () {
        let currentValue = Int(distanceSlider.value)
         sliderValue.text = "\(currentValue)"
    }

    func changeZommlevelWithSlider () {
        let zoomLevel: MKZoomScale = 5
        mapView.animate(toZoom: changeSliderValue.Value * zoomLevel)   
    }
}

Ошибка:

Значение типа '(UISlider) -> ()' не имеет члена 'Значение'

Что я могу реализовать для работы зума с помощью ползунка?

1 Ответ

0 голосов
/ 14 января 2019

Линия:

mapView.animate(toZoom: changeSliderValue.Value * zoomLevel)

должно быть:

mapView.animate(toZoom: distanceSlider.value * zoomLevel)

changeSliderValue - это функция. Вы хотите сослаться на выход слайдера. И свойство для получения его значения равно value, а не Value.

После этого исправления вы можете получить ошибку о умножении Float и MKZoomScale.

Так что вам может понадобиться:

mapView.animate(toZoom: MKZoomScale(distanceSlider.value) * zoomLevel)
...