Matthew Guest Ответов: 0

Как я могу переключить мили / ч В км / ч в мой лейбл скорость cllocation?


У меня есть метка скорости, которая отображает скорость пользователя в милях в час по умолчанию. У меня есть скользящее вверх меню настроек с двумя кнопками "километры "и" милесперхур", и я пытаюсь переключаться между кмч и миль в час. Код выглядит правильным, когда я проверяю, были ли выбраны кнопки, которые затем должны преобразовать скорость в соответствующие км / ч или миль / ч. Однако приведенный ниже код не дает никакого эффекта. Есть какие-нибудь идеи о том, что может быть не так?


//MPH and KMH
@IBOutlet weak var SpeedLbl: UILabel! 


//Outlets for buttons on the slide up settings menu
@IBOutlet weak var kilometers: UIButton!
@IBOutlet weak var milesPerHour: UIButton!



func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        let location: CLLocation = locations.last!
        
        if milesPerHour.isSelected == true {
            SpeedLbl.text = String(format: "%.1f", location.speed) + " mph"
        }
        else if kilometers.isSelected == true {
            SpeedLbl.text = String(format: "%.1f", location.speed * 1.61) + " kph"
        }
    }


Что я уже пробовал:

Я создал действия для двух кнопок, но обнаружил, что это не работает, потому что скорость может быть получена только в методе did update locations, поэтому попытка получить доступ к скорости пользователей вне его, похоже, не работает, поэтому я использую выходы кнопок, чтобы проверить, были ли они нажаты.

Maciej Los

Вам нужно использовать кнопки? Я читал, что ToggleGroup будет намного, намного лучше соответствовать вашим требованиям.

0 Ответов