我是
swift的新手,我正在尝试用PickerView制作UIAlertContoller
但是我对Buttones有疑问,
这是一张照片
但是我对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)
它看起来像下面.