我的场景,我正在尝试创建按钮单击以打开UIPickerView
并选择使用swift在按钮标题上显示的选择器数据。在这里,Toolbar
我也想加入pickerview控制器。
let button = UIButton(type: .custom)
button.setTitle("",for: .normal)
button.frame = CGRect(x: CGFloat(amount_textfield.frame.size.width - 9), y: CGFloat(5), width: CGFloat(9), height: CGFloat(20))
button.addTarget(self, action: #selector(self.refresh), for: .touchUpInside)
amount_textfield.leftView = button
amount_textfield.leftViewMode = .always
@IBAction func refresh(_ sender: Any) {
// Here, I need to execute picker view
}
您必须遵循以下几个步骤:
UIPickerView
并设置其delegate
和dataSource
@IBOutlet weak var pickerView: UIPickerView!
override func viewDidLoad() {
super.viewDidLoad()
pickerView.delegate = self
pickerView.dataSource = self
}
class ViewController: UIViewController {
var array = [String]()
}
extension ViewController: UIPickerViewDelegate, UIPickerViewDataSource {
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return array.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return array[row]
}
}
pickerView.isHidden = false
pickerView(_:didSelectRow:inComponent:)
。选择行时,将index的标题设置为索引处数据源数组中的元素row
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
button.setTitle(array[row], for: .normal)
}
pickerView.isHidden = true