Zuvor hatte ich auf ios 10 den folgenden Code, der perfekt für mich funktioniert. Ich habe gerade UIView mit UIImage + UIView mit spezifischer Farbe hinzugefügt. Nach der Prüfung auf 11 ios fand ich heraus, dass einige der Bildschirme dieses Image auf der Oberseite der Rest UI-Elemente haben, so was ist falsch mit diesemBest Practices zum Hinzufügen von Hintergrundbildern in allen ViewControllern swift ios 11
override func viewDidLoad() {
super.viewDidLoad()
configureView()
}
func configureView() {
view.backgroundColor = UIColor.clear
let backgroundImage = getBackgroundImage()
view.addSubview(backgroundImage)
view.sendSubview(toBack: backgroundImage)
}
func getBackgroundImage() -> UIView {
let backgroundImage = UIImageView(frame: UIScreen.main.bounds)
backgroundImage.image = UIImage(named: "lemons")
backgroundImage.contentMode = UIViewContentMode.scaleAspectFill
let backgroundView = UIView(frame: UIScreen.main.bounds)
backgroundView.backgroundColor = black
backgroundImage.addSubview(backgroundView)
return backgroundImage
}
Danke, ich werde versuchen, Ihren Ansatz - der Grund für so viel Codierung - ist, dass auf der Oberseite von iImage möchte ich halbtransparente Sicht platzieren. Und ich habe nicht immer viewContorller programmgesteuert erstellt, vielleicht nur ein paar von ihnen programmgesteuert und der Rest vom Storyboard, das ist wahrscheinlich ein Durcheinander –
Ich aktualisierte die Antwort, um eine Tönungsschicht zu enthalten. Solange Sie das Bild bei 0 und die Farbtonebene bei 1 einfügen, wird alles andere über ihnen hinzugefügt. Es ist auch besser, meinen Code so modular wie möglich zu halten. Anstatt zu versuchen, das Bild und die Tint-Ebene in einer Ansicht zu kombinieren, sollten Sie sie getrennt halten, damit zukünftige Änderungen viel einfacher und Bugs leichter zu erkennen sind. – sconewolf