在 UIPickerView 中获取工作工具栏 Swift
Get a working toolbar in a UIPickerView Swift
所以我有一个使用 pickerview 的文本字段。但出于某种原因,从 iOS 11.x 开始,它似乎没有出现。我似乎无法弄清楚为什么。我查看了其他一些问题,看来我的实现是相同的,但工具栏不会出现在加载选择器视图时。
下面是我为 pickerview 声明和设置工具栏的代码:
let picker: UIPickerView
picker = UIPickerView(frame: CGRect(x: 0, y: 200, width: view.frame.width, height: 300))
picker.showsSelectionIndicator = true
picker.delegate = self
picker.dataSource = self
let toolBar = UIToolbar()
toolBar.barStyle = UIBarStyle.default
toolBar.isTranslucent = false
toolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1)
toolBar.sizeToFit()
let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.plain, target: self, action: #selector(UploadViewController.donePicker))
let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)
toolBar.setItems([spaceButton, doneButton], animated: false)
toolBar.isUserInteractionEnabled = true
requestTextField.inputView = picker
requestTextField.inputAccessoryView = toolBar
您需要确保声明 translatesAutoresizingMaskIntoConstraints = false
否则您设置的任何约束都将不起作用。
另外,您似乎没有任何限制。但在向视图添加约束之前,请确保已将视图添加到父视图 - 如果未通过情节提要或使用 view.addSubView(picker)
约束将导致您的应用程序崩溃。
使用此示例向您的视图添加约束。
picker.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor)
此外,使用 view.leadingAnchor
作为左约束,使用 view.trailingAnchor
作为右约束,而不是 view.frame.width
作为 UIPicker
的宽度
所以我有一个使用 pickerview 的文本字段。但出于某种原因,从 iOS 11.x 开始,它似乎没有出现。我似乎无法弄清楚为什么。我查看了其他一些问题,看来我的实现是相同的,但工具栏不会出现在加载选择器视图时。 下面是我为 pickerview 声明和设置工具栏的代码:
let picker: UIPickerView
picker = UIPickerView(frame: CGRect(x: 0, y: 200, width: view.frame.width, height: 300))
picker.showsSelectionIndicator = true
picker.delegate = self
picker.dataSource = self
let toolBar = UIToolbar()
toolBar.barStyle = UIBarStyle.default
toolBar.isTranslucent = false
toolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1)
toolBar.sizeToFit()
let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.plain, target: self, action: #selector(UploadViewController.donePicker))
let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)
toolBar.setItems([spaceButton, doneButton], animated: false)
toolBar.isUserInteractionEnabled = true
requestTextField.inputView = picker
requestTextField.inputAccessoryView = toolBar
您需要确保声明 translatesAutoresizingMaskIntoConstraints = false
否则您设置的任何约束都将不起作用。
另外,您似乎没有任何限制。但在向视图添加约束之前,请确保已将视图添加到父视图 - 如果未通过情节提要或使用 view.addSubView(picker)
约束将导致您的应用程序崩溃。
使用此示例向您的视图添加约束。
picker.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor)
此外,使用 view.leadingAnchor
作为左约束,使用 view.trailingAnchor
作为右约束,而不是 view.frame.width
作为 UIPicker