2016-07-26 60 views
1

Ich muss die Artikel wie UITableView in UIAlertView anzeigen. Wie kann ich das machen?? oder wenn ich die Frage falsch verstehe, schlagen Sie mir Geeks vor?Tabellenansicht in AlertController dynamisch in swift hinzufügen, wie?

Mein Bildschirm sollte wie

sein

Vielen Dank im Voraus.

enter image description here

** bearbeitet Bildschirm ** enter image description here

+0

Sie sollten mit übergeordneter Ansicht haben einen durchscheinenden Hintergrund und ein Kind, wie oben neue View-Controller erstellen, verwenden 'addchildviewcontroller' es –

+0

zeigen, wenn Sie irgendeine Probe oder Link bitte @PhuDuy senden –

+0

es ist die gleiche wie Sie Erstellen Sie einen View-Controller, aber Sie werden es über aktuelle Ansicht Controller zeigen –

Antwort

1

Erstellen Sie ein neues UIViewController und vor der Vorlage legen Sie es modalPresentationStyle Eigenschaft UIModalPresentationOverCurrentContext zu sein. Die UIViewController Ansicht muss clear color als Hintergrundfarbe gesetzt haben und von einer UIImageView mit Alpha 0,5 überlagert werden und hat graue Farbe. Dadurch wird der semitransparente Effekt erstellt, und dann werden weitere UI-Elemente hinzugefügt (Tabellenansicht, Schaltflächen usw.).

Nehmen wir an, Sie haben CustomViewController für die Anzeige des oben beschriebenen Inhalts. Sie werden es zeigen die folgenden statments mit:

let customVC = CustomViewController() 
customVC.modalPresentationStyle = .OverCurrentContext 
presentViewController(customVC, animated: false, completion: nil) 

Davor, CustomViewController ‚s in der folgenden Art und Weise anpassen:

  • CustomViewController Ansicht muss Hintergrundfarbe zu clear color

  • gesetzt haben Eine Bildansicht, die CustomViewController Ansicht überlagert, stellen Sie alpha = 0,5 und background Farbe auf dunkelgraue Farbe.

  • Ein Content-Ansicht (wo Sie Ansicht und der Rest der UI setzen Tabelle werden Komponenten, die Sie benötigen)

Als Ergebnis Sie diese Ansicht hierarcy haben werden:

enter image description here

+0

jede Probe oder Demo Sir –

+0

danke Sir .. die Ansicht, ich habe es ... –

+0

wenn diese Ansicht als anfängliche viewcontroller seine Anzeige der genauen Ansicht, aber wenn ich mit Ihr oben stehender Code beim Klicken auf einen beliebigen Button zeigt den schwarzen Bildschirm warum? –

1

Idealerweise müssen Sie einen anderen UIViewController mit Tabellenansicht erstellen und Overlay mit dem modalPresentationStyle anzeigen, wie @Azimov sagt.

Oder erstellen Sie UITableView außerhalb Ihres UIViewController und fügen Sie es als Unteransicht hinzu.

Wenn Sie die Alarmansicht noch hinzufügen möchten, können Sie dies wie folgt tun.

var alertView: UIAlertView! 

alertView = UIAlertView(title: "", message:nil , delegate: nil, cancelButtonTitle:nil) 

// Here you have to draft whole code for table view 
// var newTableview: UITableView! 
// Then you can add it on alert view by using accessoryView 

alertView.setValue(newTableview, forKey: "accessoryView") 
+0

o danke ... die erste, die ich versuchte und es funktionierte .. –

+0

hey .. wenn ich Ihre zweite Option verwenden muss, von wo ich die "forKey" einstellen kann, wie Sie wie "AccessoryView" setzen –

+0

Pass einfach deine Tabelle View Objektname wie alertView.setValue (newTableview, forKey: "AccessoryView"), forKey: "AccessoryView") das ist fix nichts zu ändern, hier. – Hasya