2017-04-19 82 views
0

我想创建一个带有文本框和选择器视图的警报。 我希望在顶部显示选择器视图,然后在选择器视图下方的文本框。在UIAlertView中设置TextField和PickerView

enter image description here

这里是我的代码

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) 

回答

0

不能使用UIAlertController为,因为它不会有一个选项,添加其他视图比文本框。 所以,你必须编写自己的控件,这将模仿UIAlertController。 您可以编写视图控制器并以模态方式呈现它,或创建视图并将其添加到控制器视图。 此外,尝试在github.comcocoacontrols.com上找到现成的组件并根据需要进行修改可能是个好主意。

1

你应该创建一个uiviewcontroller并给它这个效果。

例如:在下一张图片中,我创建了一个视图为模态。它是一个带有灰色视图的uiviewcontroller(在您的情况下,在灰色视图中,您应该放置uitextfield和uipickerview)。然后,我配置的故事板赛格瑞作为当前模态,并给予在该模式的效果的UIViewController地说:

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

enter image description here

enter image description here

相关问题