单击UIButton以显示UIPickerView并选择按钮标题上的ID:Swift

问题描述 投票:-4回答:1

我的场景,我正在尝试创建按钮单击以打开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 
 }
ios swift uipickerview uipickerviewcontroller
1个回答
0
投票

您必须遵循以下几个步骤:

  1. 创建最初隐藏的UIPickerView并设置其delegatedataSource @IBOutlet weak var pickerView: UIPickerView! override func viewDidLoad() { super.viewDidLoad() pickerView.delegate = self pickerView.dataSource = self }
  2. 拥有用于此选择器视图的数据源数组 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] } }
  3. 按下按钮时取消隐藏选择器视图 pickerView.isHidden = false
  4. 整合选择器视图的委托方法pickerView(_:didSelectRow:inComponent:)。选择行时,将index的标题设置为索引处数据源数组中的元素row func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { button.setTitle(array[row], for: .normal) }
  5. 可选:隐藏选择器视图 pickerView.isHidden = true
© www.soinside.com 2019 - 2024. All rights reserved.