Чтобы узнать уровень заряда батареи iPhone в SwiftUI, вы можете использовать класс UIDevice
из UIKit, который предоставляет информацию об аппаратном и программном обеспечении устройства. Вот пример того, как вы можете получить уровень заряда батареи в SwiftUI с помощью UIDevice
:
import UIKit
class BatteryStatusViewModel: ObservableObject {
@Published var batteryLevel: Float = UIDevice.current.batteryLevel
init() {
UIDevice.current.isBatteryMonitoringEnabled = true
NotificationCenter.default.addObserver(self, selector: #selector(batteryLevelDidChange), name: UIDevice.batteryLevelDidChangeNotification, object: nil)
}
@objc private func batteryLevelDidChange() {
batteryLevel = UIDevice.current.batteryLevel
}
}
struct ContentView: View {
@ObservedObject var batteryStatus = BatteryStatusViewModel()
var body: some View {
VStack {
Text("Battery Level: \(batteryStatus.batteryLevel * 100, specifier: "%.0f")%")
.font(.headline)
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
В этом примере мы создаем класс BatteryStatusViewModel
, соответствующий протоколу ObservableObject
. У него есть свойство batteryLevel
, которое представляет текущий уровень заряда батареи. Включаем мониторинг батареи в инициализаторе и регистрируем уведомления об изменении уровня заряда батареи. При изменении уровня заряда батареи вызывается функция batteryLevelDidChange()
, обновляющая свойство batteryLevel
.
В ContentView
мы создаем экземпляр BatteryStatusViewModel
в качестве наблюдаемого объекта. Мы отображаем уровень заряда батареи с помощью представления Text
, и значение обновляется автоматически при каждом изменении batteryLevel
.
Чтобы использовать этот ContentView
в своем приложении, вы можете добавить его в иерархию SwiftUI.