我只是在学习Swift,在我的第一个项目中,我遇到了一种奇怪的行为。当我在模拟器上的iOS 13上运行我的应用程序时,UIView成功渲染了背景视图的Alpha,但是当我在iOS 12.4上运行它时,却出现黑屏。
我在做什么错?
iOS13:Current version
iOS12:What I get in simulator
我渲染它:
class ManualAddVC: UIViewController, UITextFieldDelegate {
...
var backdropView: UIView = {
let bdView = UIView(frame: CGRect(x: 0,y: 0,width: UIScreen.main.bounds.size.width,height: UIScreen.main.bounds.size.height))
bdView.backgroundColor = UIColor.black.withAlphaComponent(0.1)
return bdView
}()
...
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(backdropView)
view.sendSubviewToBack(backdropView)
....
}
尝试给出约束而不是使用frame
和UIScreen.main.bounds
:
backdropView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
backdropView.topAnchor.constraint(equalTo: view.topAnchor),
backdropView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
backdropView.bottomAnchor.constraint(equalTo: view.bottomAnchor),
backdropView.trailingAnchor.constraint(equalTo: view.trailingAnchor)])