首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用文本变量更新电池电量,以便在更新时显示电池电量?

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

Stack Overflow用户
提问于 2019-06-05 12:21:05
回答 2查看 177关注 0票数 0

我已经尝试了几种方法,但都没有奏效。

我一直在尝试使用Xcode5中的一些代码来获取电池电量,但都没有成功。我要求每次电池电量更新时,读数都要改变。

代码语言:javascript
复制
  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)%"

    }
}

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

EN

回答 2

Stack Overflow用户

发布于 2019-06-05 12:33:23

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

代码语言:javascript
复制
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提供的电池状态变化的观察者

代码语言:javascript
复制
NotificationCenter.default.addObserver(self, selector: #selector(batteryLevelDidChange), name: UIDevice.batteryLevelDidChangeNotification, object: nil)

@objc func batteryLevelDidChange(_ notification: Notification) {
    print(batteryLevel)
}
票数 0
EN

Stack Overflow用户

发布于 2019-06-05 12:40:13

代码:

代码语言:javascript
复制
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)"
    }
}

备注:

也许模拟器会给出不可预知的值,所以我建议在真实设备上进行测试

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56454220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档