我想在整个屏幕(包括导航栏)上放置一个UIView.此视图将为黑色,不透明度为0.3.我想这样做,使屏幕内容变暗,并在上面推一个视图.我使用的代码是:

UIApplication.sharedApplication().keyWindow?.addSubview(darkView)

这会像预期的那样覆盖整个屏幕.然而,我现在想在这个黑暗的视图上放置另一个视图.有办法做到这一点吗?我try 的每一件事都只会导致视图处于黑暗视图之下.任何指点都将不胜感激!谢谢

推荐答案

这很简单.

你只需将另一个视图添加到window!它将在那里,在你添加的第一个视图的顶部.例如,此代码添加了一个黑色视图和一个白色视图:

let window = UIApplication.sharedApplication().keyWindow!
let v = UIView(frame: window.bounds)
window.addSubview(v)
v.backgroundColor = UIColor.blackColor()
let v2 = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 50))
v2.backgroundColor = UIColor.whiteColor()
window.addSubview(v2)

还可以将新视图添加为添加的第一个视图的子视图:

let window = UIApplication.sharedApplication().keyWindow!
let v = UIView(frame: window.bounds)
window.addSubview(v)
v.backgroundColor = UIColor.blackColor()
let v2 = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 50))
v2.backgroundColor = UIColor.whiteColor()
v.addSubview(v2)

Swift 4

let window = UIApplication.shared.keyWindow!
let v = UIView(frame: window.bounds)
window.addSubview(v)
v.backgroundColor = .black
let v2 = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 50))
v2.backgroundColor = UIColor.white
v.addSubview(v2)

易于理解的

Swift相关问答推荐

Accelerate的SparseMultiply随机崩溃,EXC_BAD_ANCE

SwiftData:线程1:&Quot;NSFetchRequest找不到实体名称';提醒&q;的NSEntityDescription

有没有一种方法可以迭代可编码的代码(例如,JSON解析中的每一项)?

如何使用AsyncTimerSequence获取初始时钟,然后在指定的时间间隔内开始迭代?

如何在 Vapor 中制作可选的查询过滤器

如何在应用程序区域永久更改 NSCursor?

SwiftUI如何能够在Text中使用字符串字面量来创建LocalizedStringKey?

为什么我的 tableView 没有推送到 tableView 内的 detailViewController?

如何让默认函数参数引用另一个函数参数?

如何在 UITableView 中点击图片和标题

签署GoogleSignIn-GoogleSignIn需要开发团队

如何让 UIKit 挤压你的视图,使其适合屏幕

判断 Swift 程序是否正在输出到终端

如何自己快速编写 Hashable 协议

如何使被拖动的对象成为前景(foreground)对象

UICollectionView 自定义单元格在 Swift 中填充宽度

如何在Swift中找出字母是字母数字还是数字

快速覆盖属性

Swift :如何在一组字符之后得到所有东西

如何快速格式化用户显示(社交网络等)的时间间隔?