ios - 在 iOS 12 上启动应用程序时无法呈现 Alpha
问题描述
我刚刚学习 Swift,在我的第一个项目中我遇到了一个奇怪的行为。当我在模拟器中的 iOS 13 上运行我的应用程序时,UIView 成功为背景视图呈现 alpha,但是当我在 iOS 12.4 上运行它时,我却得到了黑屏。
我究竟做错了什么?
iOS13: 当前版本
iOS12:我在模拟器中得到了什么
为了渲染它,我这样做:
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
and 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)])
推荐阅读
- c++ - 有没有办法在 C++ 地图中存储自动值?
- java - 无法扫描控制器的Whitelabel错误页面-Spring boot-jsp
- python - 显示字符串中的特定数字
- php - Laravel 项目中没有控制器文件夹
- qt - 如何“在 QT Creator 中将 perfix... 添加到 qml.qrc”?
- javascript - 单击以在新选项卡上打开链接时的放大弹出图像
- php - 在 PHP 中使用带有匹配表达式的值数组
- flutter - 必须初始化不可为空的实例字段“_repository”
- mysql - MySQL中分层数据的节点数
- reactjs - React-Leaflet:位置未按时获取