Ich versuche eine Ansicht zu erstellen, die an bestimmten Stellen transparent ist, um ein Bild dahinter zu sehen. Aus irgendeinem Grund sehe ich im transparenten Teil der Ansicht jedoch schwarz statt der Ansicht. Ich habe es auf sehr wenig Code reduziert und verstehe nicht, warum meine transparente Ansicht schwarz statt rot (die Farbe der Ansicht dahinter) zeigt. Hier ist mein Code:Transparente Ansicht ist schwarz?
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)
}
Ich würde erwarten, dass der Bildschirm voll rot, sondern stattdessen zeigt es voll schwarz. Bevor jemand sagt, dass es viel einfacher ist, eine klare Sicht zu haben, versuche ich tatsächlich, komplexere Dinge in drawRect zu machen, habe mich einfach auf die grundlegendste Sache beschränkt, um zu versuchen, mein Problem zu debuggen. Was fehlt mir hier?
'self.opaque = false;' Fügen Sie das dem Konstruktor 'TransparentView' hinzu. Dann können Sie tun, was Sie wollen, in der "Draw" -Methode. – Brandon