ios - Swift - 以编程方式创建 UIPickerView
问题描述
我创建了PickerView
,但这不会打开PickerView
我创建的。我在哪里犯错?为什么PickerView
打不开。我在文本字段中添加了选择器视图,但它不起作用。我将它添加到viewDidLoad
,但是当我单击文本字段时,选择器视图不会打开。
class EnergyChart: UIViewController , UIPickerViewDelegate, UIPickerViewDataSource {
var picker = UIPickerView()
var gradePickerValues1 : [String] = ["...", ...]
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return gradePickerValues1.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return gradePickerValues1[row]
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int){
getDevice.text = gradePickerValues1[row]
switch row {
case 0: break
default: break
}
self.view.endEditing(true)
}
@objc func cancelTapped() {
self.view.endEditing(true)
}
let getDevice: UITextField = {
let textFieldframe = CGRect()
let textField2 = SkyFloatingLabelTextFieldWithIcon(frame: textFieldframe, iconType: .image)
...
return textField2
}()
@objc func GetDevice() {
self.getDevice.text = self.gradePickerValues1[0]
}
override func viewDidLoad() {
super.viewDidLoad()
picker.backgroundColor = .white
picker.showsSelectionIndicator = true
picker.delegate = self
picker.dataSource = self
getDevice.inputView = picker
GetDevice()
let toolBar = UIToolbar()
toolBar.barStyle = UIBarStyle.default
toolBar.isTranslucent = true
toolBar.tintColor = UIColor(..)
toolBar.sizeToFit()
let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.flexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "İptal", style: UIBarButtonItem.Style.plain, target: self, action: #selector(cancelTapped))
toolBar.setItems([cancelButton, spaceButton], animated: false)
toolBar.isUserInteractionEnabled = true
getDevice.inputAccessoryView = toolBar
view.addSubview(getDevice)
getDevice.snp.makeConstraints { (make) in
make.centerX.equalTo(view).offset(50)
make.top.equalTo(view).offset(510)
make.height.equalTo(50)
make.width.equalTo(200)
}
解决方案
推荐阅读
- python - 如何在 PCA 期间保留类标签
- azure-powershell - PowerShell Az Analysis Services 合并分区 - 获取凭据错误
- linux - 使用 netdata 监控基础设施 - 没有可用的包 autogen。libmnl-devel lz4-devel python3-pymongo
- woocommerce - woocommerce 在结帐页面上显示订单 ID
- flutter - 颤振底部溢出 n 个像素,列结束对齐
- reactjs - React Fluent UI 主题
- angular - 未捕获的 DOMException:无法在“WorkerGlobalScope”上执行“importScripts”:“http://localhost:9000/worker-html.js”处的脚本无法加载
- netsuite - 如何使用 SuitScript 检查字段是否可编辑?
- python - Python脚本仅输出重复记录的CSV?
- rust-cargo - 如何使用 cargo install 列出我在全球范围内安装的所有软件包?