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

Posted

技术标签:

【中文标题】单击 UIButton 以显示 UIPickerView 并在按钮标题上选择 ID:Swift【英文标题】:Click UIButton To Show UIPickerView and Select ID on Button Title : Swift 【发布时间】:2019-03-05 10:54:06 【问题描述】:

我的场景,我正在尝试创建按钮单击以打开 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 
 

【问题讨论】:

见此寻求帮助; peterwitham.com/swift-archives/… 【参考方案1】:

您必须遵循几个步骤:

    创建最初隐藏的UIPickerView 并设置其delegatedataSource

    @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:)。选择行时,将按钮的标题设置为数据源数组中的元素,索引为选中row

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) 
        button.setTitle(array[row], for: .normal)
    
    

    可选:隐藏选择器视图

    pickerView.isHidden = true
    

【讨论】:

谢谢@Rober Dresler。可以发一些代码吗? 我需要显示选择器视图控制器的底部。上面提到了我已经拥有的所有代码。 @罗伯特·德雷斯勒

以上是关于单击 UIButton 以显示 UIPickerView 并在按钮标题上选择 ID:Swift的主要内容,如果未能解决你的问题,请参考以下文章

单击选定的 UIButton 时未显示 UIButton 突出显示状态

无法单击 UIButton iphone

用户单击时如何禁用 UIButton 的突出显示

Swift3:UITableViewCell 和 UIButton - 通过单击 UIButton 显示和隐藏 UITableViewCell

更改以编程方式创建的单击 UIButton 的背景图像

在 UIScrollView 中以编程方式依次单击 10 个 UIButton