swift UIAlertController与pickerView按钮操作熬夜

前端之家收集整理的这篇文章主要介绍了swift UIAlertController与pickerView按钮操作熬夜前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 swift的新手,我正在尝试用PickerView制作UIAlertContoller
但是我对Buttones有疑问,
这是一张照片

当我试图改变约束时,按钮保持不动
我在这里读了很多答案,但我没有找到任何solotuin

这是我的代码

func distance(){
    let editRadiusAlert = UIAlertController(title: "Choose distance",message: "",preferredStyle: UIAlertControllerStyle.alert)
    let pickeViewFrame: CGRect = CGRect(x: 0,y: 0,width: 250,height: 300)
    let pickerViewRadius: UIPickerView = UIPickerView(frame: pickeViewFrame)
    pickerViewRadius.delegate = self
    pickerViewRadius.dataSource = self
    editRadiusAlert.view.addSubview(pickerViewRadius)
    editRadiusAlert.addAction(UIAlertAction(title: "Done",style: UIAlertActionStyle.default,handler:nil))
    editRadiusAlert.addAction(UIAlertAction(title: "Cancel",style: UIAlertActionStyle.cancel,handler: nil))
    editRadiusAlert.view.addConstraint(NSLayoutConstraint(item: editRadiusAlert.view,attribute: NSLayoutAttribute.height,relatedBy: NSLayoutRelation.equal,toItem: nil,attribute: NSLayoutAttribute.notAnAttribute,multiplier: 1,constant: self.view.frame.height * 0.5))
    self.present(editRadiusAlert,animated: true,completion: nil)
}
而不是添加pickerView作为子视图尝试设置UIAlertController的contentViewController像这样.
let vc = UIViewController()
vc.preferredContentSize = CGSize(width: 250,height: 300)
let pickerView = UIPickerView(frame: CGRect(x: 0,height: 300))
pickerView.delegate = self
pickerView.dataSource = self
vc.view.addSubview(pickerView)
let editRadiusAlert = UIAlertController(title: "Choose distance",preferredStyle: UIAlertControllerStyle.alert)
editRadiusAlert.setValue(vc,forKey: "contentViewController")
editRadiusAlert.addAction(UIAlertAction(title: "Done",style: .default,handler: nil))
editRadiusAlert.addAction(UIAlertAction(title: "Cancel",style: .cancel,handler: nil))
self.present(editRadiusAlert,animated: true)

它看起来像下面.

猜你在找的Swift相关文章