我刚开始做一个新的应用程序。代码UIScreen.main.brightness = 1.0在任何地方都不起作用。我在viewDidLoad上试过了,在viewWillAppear上试过了。我注释掉了所有其他代码,并使其成为运行的唯一一行代码,但它不起作用。我不能改变亮度。我正在我的iPhone X- iOS 13.4.1这台真实的设备上试用。可能的原因是什么?
编辑:还尝试了一个新的Xcode项目。仍然不起作用。
发布于 2020-05-13 11:00:18
我注意到在iOS 13中,从viewDidLoad和viewWillAppear调用UIScreen.main.brightness没有任何效果。将其添加到viewDidAppear可以很好地工作。
它在按钮操作中也能很好地工作。
import UIKit
class ViewController: UIViewController {
var brightness: CGFloat = 1.0
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let button = UIButton(type: .infoDark)
// This call is ignored
UIScreen.main.brightness = CGFloat(0.3)
view.addSubview(button)
button.frame = CGRect(x: 40.0, y: 100.0, width: button.frame.width, height: button.frame.height)
button.addTarget(self, action: #selector(toggle), for: .touchUpInside)
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// This call is also ignored
UIScreen.main.brightness = CGFloat(0.8)
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// This call sets the brightness
UIScreen.main.brightness = 0.5
}
@objc func toggle() {
brightness = brightness - 0.2
print("brightness is \(brightness)")
if brightness < 0 { brightness = 1.0 }
// This call changes the brightness
UIScreen.main.brightness = brightness
}
}发布于 2020-11-25 19:39:34
我发现了一些有趣的东西!如果您从代码设置亮度-但随后用户从系统UI手动更改它,您将无法再从代码更改亮度(直到应用程序重启)- Apple可能有一些逻辑来防止过于频繁/不必要的更改。
这只是我的观察-文档中没有这样的信息
https://stackoverflow.com/questions/61765014
复制相似问题