Custom Alert (uialertview-Objekt) mit swift
Wie kann ich erstellen Sie eine benutzerdefinierte Benachrichtigung mit Swift? Ich versuche die übersetzung einer Anleitung von Objective c, sondern lädt ein Vollbild-layout, in
für tun Sie es einfach, ich kann laden Sie ein neues layout mit dem transparenten hintergrund versuche ich Folgendes:
listaalertviewcontroller.view.backgroundColor = UIColor.clearColor()
let purple = UIColor.purpleColor() //1.0 alpha
let semi = purple.colorWithAlphaComponent(0.5)
listaalertviewcontroller.view.backgroundColor = semi
presentingViewController.modalPresentationStyle = UIModalPresentationStyle.CurrentContext
self.presentViewController(listaalertviewcontroller, animated: true, completion: nil)
in der animation ist es transparent, aber wenn die animation endet, es ist undurchsichtig... und ich abschalten Opak-option in der Ansicht... was mache ich falsch?
Sie können nicht anpassen,
ich Bearbeiten meine Frage! danke!
UIAlertView
seit iOS 7. Wie bereits in den Dokumentation: Die uialertview-Objekt-Klasse verwendet werden soll, wie Sie ist und unterstützt nicht das erstellen von Unterklassen. Die view-Hierarchie für diese Klasse ist privat und muss nicht geändert werden.ich Bearbeiten meine Frage! danke!
InformationsquelleAutor Pedro Manfredi | 2014-08-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Code getestet Swift 4 und Xcode 9
, Wie Sie Ihre eigenen benutzerdefinierten Alarm
Ich wollte, etwas ähnliches zu tun. Zunächst
UIAlertView
ist veraltet, zu Gunsten derUIAlertController
. Finden Sie diese Antwort für die standard-Weg, um eine Warnung angezeigt werden soll:Und beide
UIAlertView
undUIAlertController
nicht wirklich viel Anpassung. Eine Möglichkeit ist die Verwendung einiger Drittanbieter-code. Aber, ich entdeckte, dass es gar nicht so schwer, erstellen Sie Ihre eigene Warnung, indem Sie die Anzeige einer anderen view-controller modaly.Das Beispiel hier ist nur ein proof-of-concept. Sie können Ihre design-alert, wie Sie wollen.
Storyboard
Sollten Sie zwei View-Controllern. Ihre zweite view-controller wird Ihre Warnung. Legen Sie den Namen der Klasse zu
AlertViewContoller
und die Storyboard IDalert
. (Beides sind Namen definiert, dass wir uns in den folgenden code, nichts besonderes. Können Sie den code hinzufügen, wenn Sie möchten. Es könnte tatsächlich einfacher sein, wenn Sie fügen Sie den ersten code.)Legen Sie die Hintergrundfarbe für die root-Ansicht (im Alert-View-Controller) zu löschen. Fügen Sie ein weiteres
UIView
und zentrieren Sie es mit Einschränkungen. Verwenden Sie diese als Ihre alert-hintergrund und setzen, was Sie wollen im inneren. Für mein Beispiel habe ich einUIButton
.Code
ViewController.swift
AlertViewController.swift
Vergessen Sie nicht, um hook up die Steckdosen.
Das ist es. Sie sollten in der Lage sein, jede Art von Warnung, die Sie sich vorstellen können jetzt. Keine Notwendigkeit für third-party-code.
Andere Optionen
Manchmal gibt es keine Notwendigkeit, das Rad neu erfinden, wenn. Ich bin beeindruckt, mit dem Dritten Projekt SDCAlertView (MIT-Lizenz). Es ist geschrieben in Swift aber Sie können es verwenden, mit Objective-C-Projekte als gut. Es bietet eine Breite Palette von customability.
wird Ausnahme Unbekannt Klasse AlertViewContoller im Interface Builder-Datei.
wo, um code zu schreiben, wenn ich einstellen will dynamische Titel-Taste?
hinzufügen eines
@IBOutlet
für die Schaltfläche ein und ändern Sie dann die Taste text, um was auch immer Sie wollen, wenn dieAlertViewController
Lasten.Danke für deine Antwort. Wie um zu schließen das Dialogfeld, wenn Sie außerhalb des dialogs berührt?
InformationsquelleAutor Suragch
Hier ist die Swift 3 code. Vielen Dank @Suragch für die awesome-Ansatz zum erstellen einer benutzerdefinierten AlertView.
ViewController.swift
AlertViewController.swift
Machen es ein wenig interessanter, oder die Standard-Effekt in iOS, könnte man hinzufügen, entweder ein VisualEffectView oder ändern Sie die Farbe des Haupt-UIView zu einer dunklen Farbe, und legen Sie Ihren alpha zu 70%. Ich bevorzuge den zweiten Ansatz, da der blur Effekt ist nicht so glatt wie das mit den anzeigen mit 70 alpha.
Effekt mit VisualEffectView:
Effekt mit einer UIView mit 70 Alpha:
let blurFx = UIBlurEffect(style: UIBlurEffectStyle.dark) let blurFxView = UIVisualEffectView(effect: blurFx) blurFxView.frame = view.bounds blurFxView.autoresizingMask = [.flexibleWidth, .flexibleHeight] view.insertSubview(blurFxView, at: 0)
InformationsquelleAutor fs_tigre
Verwenden https://github.com/shantaramk/Custom-Alert-View
Es mühelos, diese auch umzusetzen. Folgen Sie einfach den unten aufgeführten Schritte:
Unten ziehen den AlertView Ordner im Projekt Verzeichnis
AlertView Show Popup
}
InformationsquelleAutor Shantaram Kokate