Как я могу переключить мили / ч В км / ч в мой лейбл скорость 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 будет намного, намного лучше соответствовать вашим требованиям.