单击 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
并设置其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:)
。选择行时,将按钮的标题设置为数据源数组中的元素,索引为选中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 突出显示状态
Swift3:UITableViewCell 和 UIButton - 通过单击 UIButton 显示和隐藏 UITableViewCell