【发布时间】:2017-08-20 20:08:10
【问题描述】:
我正在尝试创建一个在某些位置透明的视图,以查看后面的图像。但是,由于某种原因,在视图的透明部分,我看到的是黑色,而不是视图后面的内容。我已将其缩减为非常少的代码,并且不明白为什么我的透明视图显示黑色而不是红色(后面视图的颜色)。这是我的代码:
class ViewController: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let redView = UIView(frame: view.frame)
redView.backgroundColor = UIColor.red
let transparentView = TransparentView(frame: view.frame)
view.addSubview(redView)
view.addSubview(transparentView)
}
}
class TransparentView: UIView {
override func draw(_ rect: CGRect) {
UIColor.clear.setFill()
UIRectFill(rect)
}
我希望屏幕是全红的,但它却显示全黑。在有人说清晰视图要容易得多之前,我实际上是在尝试在 drawRect 中做更复杂的事情,只是下降到最基本的事情来尝试调试我的问题。我在这里错过了什么?
【问题讨论】:
-
self.opaque = false;将其添加到TransparentView构造函数中。然后你可以在draw方法中做任何你想做的事情。