I am new in swift and I am trying to make UIAlertContoller
with PickerView
but I have problems with the Buttones, Here a photo
I am trying to change the constraint of the buttons to stay up. I read a lot of answers here but I did not find any solution
Here is my code:
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) }
Instead of adding pickerView
as subview try to set contentViewController
of UIAlertController
like this.
let vc = UIViewController() vc.preferredContentSize = CGSize(width: 250,height: 300) let pickerView = UIPickerView(frame: CGRect(x: 0, y: 0, width: 250, height: 300)) pickerView.delegate = self pickerView.dataSource = self vc.view.addSubview(pickerView) let editRadiusAlert = UIAlertController(title: "Choose distance", message: "", 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)
It's looks like below.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With