So wie ich Overlays getan habe, ist ein neues UIViewController
in ein Storyboard zu ziehen, und ziehen Sie ein UIView
in dem. Bei der Gestaltung der Benutzeroberfläche kann es hilfreich sein, die Hintergrundfarbe des UIViewController
schwarz zu setzen. Wenn Sie Ihre Elemente innerhalb der UIView
ausgelegt haben, ändern Sie die Hintergrundfarbe der UIViewController
zu transparent.
Hier ist ein Beispiel eines Profils Overlay:
In diesem Fall habe ich gemacht tatsächlich die UIViewController
Hintergrund eine graue Farbe mit einem Alpha von etwa 50%. Dann, wenn ich präsentiere View-Controller einen Fade-Übergang unter Verwendung es sieht aus wie es über die Spitze erscheint den aktuellen Kontext:
func showOverlay() {
//
guard let vc = UIStoryboard(name: "MyStoryboard", bundle: nil).instantiateViewController(withIdentifier: "myOverlay") as? UIViewController else {
print("failed to get myOverlay from MyStoryboard")
return
}
vc.modalPresentationStyle = .overCurrentContext
vc.modalTransitionStyle = .crossDissolve
self.present(vc, animated: true, completion: {
// after 3 seconds, dismiss the overlay
dispatchAfterSeconds(3) {
vc.dismiss(animated: true)
}
})
}
Dieser verwendet eine praktische Funktion, dispatchAfterSeconds
:
// execute function after delay using GCD
func dispatchAfterSeconds(_ seconds: Double, completion: @escaping (() -> Void)) {
let triggerTime = Int64(Double(NSEC_PER_SEC) * seconds)
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + Double(triggerTime)/Double(NSEC_PER_SEC), execute: {() -> Void in
completion()
})
}
Beachten Sie, dass, wenn ich darüber reden, Ändern der Hintergrundfarbe der UIViewController
, was ich eigentlich damit meine, ist die Hintergrundfarbe der Ansicht standardmäßig in einem UIViewController
erstellt, die in einem Storyboard erstellt wurde.
Danke, ich werde es versuchen. –