我已经尝试了几种方法,但都没有奏效。
我一直在尝试使用Xcode5中的一些代码来获取电池电量,但都没有成功。我要求每次电池电量更新时,读数都要改变。
class ViewController: UIViewController {
@IBOutlet weak var level_Battery: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
UIDevice.current.isBatteryMonitoringEnabled = true
let level = UIDevice.current.batteryLevel
let battery_Level = Int(level * 100)
level_Battery.text = "\(battery_Level)%"
}
}我希望文本变量始终显示更新的电池电量读数。因此,无论手机的电池电量是多少,我都想在应用程序中显示出来。
发布于 2019-06-05 12:33:23
将电池电量创建为计算属性,以获取电池电量。
class ViewController: UIViewController {
@IBOutlet weak var level_Battery: UILabel!
var batteryLevel: Float {
return UIDevice.current.batteryLevel
}
override func viewDidLoad() {
super.viewDidLoad()
UIDevice.current.isBatteryMonitoringEnabled = true
level_Battery.text = "\(batteryLevel * 100)%)"
}
}如果想要连续监测电池电量,需要增加iOS提供的电池状态变化的观察者
NotificationCenter.default.addObserver(self, selector: #selector(batteryLevelDidChange), name: UIDevice.batteryLevelDidChangeNotification, object: nil)
@objc func batteryLevelDidChange(_ notification: Notification) {
print(batteryLevel)
}发布于 2019-06-05 12:40:13
代码:
class ViewController: UIViewController {
@IBOutlet weak var level_Battery: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
level_Battery.text = "\(UIDevice.current.batteryLevel)"
NotificationCenter.default.addObserver(self, selector: #selector(batteryLevelDidChange(notification:)), name: UIDevice.batteryLevelDidChangeNotification, object: nil)
}
@objc func batteryLevelDidChange(notification: NSNotification){
level_Battery.text = "\(UIDevice.current.batteryLevel)"
}
}备注:
也许模拟器会给出不可预知的值,所以我建议在真实设备上进行测试
https://stackoverflow.com/questions/56454220
复制相似问题