Нажмите UIButton, чтобы показать UIPickerView и выберите ID на кнопке Название: Swift - PullRequest
0 голосов
/ 05 марта 2019

МОЙ Сценарий, я пытаюсь создать нажатие кнопки, чтобы открыть UIPickerView, и выбрать данные для выбора заголовка кнопки, используя swift.Здесь Toolbar также я бы хотел добавить в контроллер выбора.

 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 
 }

1 Ответ

0 голосов
/ 05 марта 2019

Есть несколько шагов, которые вы должны выполнить:

  1. Создайте изначально скрытый UIPickerView и установите его delegate и dataSource

    @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:). Когда строка выбрана, установите заголовок кнопки в качестве элемента массива источника данных с индексом, выбранным row

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        button.setTitle(array[row], for: .normal)
    }
    
  5. Дополнительно: скрыть вид сборщика

    pickerView.isHidden = true
    
...