2017-04-19 1 views
0

Je souhaite créer une alerte avec l'affichage du champ de texte et du sélecteur. Je veux d'abord afficher le sélecteur d'exposition, puis le champ de texte sous la vue du sélecteur.Définir TextField et PickerView dans UIAlertView

enter image description here

Voici mon code

let alert = UIAlertController(title: "Create Meditation", message: "myMsg", preferredStyle: .alert) 

alert.view.addSubview(pickerView) 

alert.addTextField { (textField) in 
textField.text = "Enter Message" 

} 


let action = UIAlertAction(title: "Send", style: .default) { (action) in 
    let textField = alert.textFields 

    print(textField) 

      } 
let action2 = UIAlertAction(title: "Cancel", style: .cancel, handler: nil) 

alert.addAction(action) 
alert.addAction(action2) 

let height:NSLayoutConstraint = NSLayoutConstraint(item: alert.view, attribute: NSLayoutAttribute.height, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: self.view.frame.height * 0.50) 
    alert.view.addConstraint(height); 

self.present(alert, animated: true, completion: nil) 

Répondre

0

Vous ne pouvez pas utiliser UIAlertController pour cela, car il ne dispose pas d'option pour ajouter des vues autres que textfields. Donc, vous devez écrire votre propre contrôle, qui imitera UIAlertController. Vous pouvez écrire le contrôleur de vue et le présenter de manière modale, ou créer une vue et l'ajouter à la vue du contrôleur. Aussi, pourrait être une bonne idée d'essayer de trouver le composant prêt sur github.com ou cocoacontrols.com et de le modifier comme vous en avez besoin.

1

Vous devez créer un uiviewcontroller et lui donner cet effet.

Par exemple: Dans l'image suivante, j'ai créé une vue comme modale. C'est un uiviewcontroller avec une vue grise (Dans votre cas, dans la vue grise, vous devriez mettre le uitextfield et uipickerview). Ensuite, je configure storyboard Segue comme présent de façon modale et de donner l'effet du modal dans le UIViewController mis:

self.view.backgroundColor = UIColor.black.withAlphaComponent(0.8) 

enter image description here

enter image description here