如何使用文本变量更新电池电量,以在电池电量更新时显示电量?

时间:2019-06-05 04:21:05

标签: ios swift batterylevel

我一直在尝试几种方法,但是都没有用。

我一直在尝试使用一些代码来获取电池电量 在Xcode5中,但没有一个起作用。 每当电池电量更新时,我都需要更改读数。

Dim findcurrentstock as string = "SELECT '" & checkoutview(0,i).value & "'FROM Tides WHERE Times = '" & actualstarttime & "'

cmd = new oledbcommand(findcurrentstock, connection)
Response = cmd.Executereader

If response.read = false then
    msgbox("ERROR MESSAGE")
else
    currentstock = response(checkoutview(0,i).value).tostring
    msgbox("currentstock")

我希望文本变量始终显示更新的电池电量读数。因此无论手机电池电量如何充电,我都希望在应用程序中显示出来。

2 个答案:

答案 0 :(得分:0)

将电池电量创建为计算属性以获取电池电量。

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)
}

答案 1 :(得分:0)

代码:

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)"
    }
}

注意:

也许它将通过模拟器提供不可预测的价值,所以我建议在真实设备上对其进行测试