UIPickerView select 第一行,隐藏时
UIPickerView select first row, when hiding
我为 UIPickerView
制作了一个工具栏:
override func viewDidLoad() {
pickerToolbar.barStyle = UIBarStyle.Default
pickerToolbar.translucent = true
pickerToolbar.tintColor = UIColor(red: 0.0, green: 112/255, blue: 186/255, alpha: 1.0)
pickerToolbar.sizeToFit()
let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "hidePicker()")
let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "hidePicker()")
pickerToolbar.setItems([cancelButton, spaceButton, doneButton], animated: false)
pickerToolbar.userInteractionEnabled = true
typePicker.addSubview(pickerToolbar)
}
func hidePicker() {
typePicker.hidden = true
}
但是当我点击 "Done" 或 "Cancel" 按钮时,选择器 select 第一行并关闭。我不想要这样的行为,我只想隐藏选择器并留下 selected 值。
所以,我有 2 个问题:
- 为什么
UIPickerView
会这样?
- 如何预防?
感谢您的帮助!
我发现你有两个错误。一个是动作的错字。根据您的代码,它必须是 action: "hidePicker",没有括号。
第二个是你的 pickerToolbar 不应该是 pickerView 的子视图。将其更改为 self.view.addSubview(pickerToolbar),您将看到更改。
干杯,
我为 UIPickerView
制作了一个工具栏:
override func viewDidLoad() {
pickerToolbar.barStyle = UIBarStyle.Default
pickerToolbar.translucent = true
pickerToolbar.tintColor = UIColor(red: 0.0, green: 112/255, blue: 186/255, alpha: 1.0)
pickerToolbar.sizeToFit()
let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "hidePicker()")
let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "hidePicker()")
pickerToolbar.setItems([cancelButton, spaceButton, doneButton], animated: false)
pickerToolbar.userInteractionEnabled = true
typePicker.addSubview(pickerToolbar)
}
func hidePicker() {
typePicker.hidden = true
}
但是当我点击 "Done" 或 "Cancel" 按钮时,选择器 select 第一行并关闭。我不想要这样的行为,我只想隐藏选择器并留下 selected 值。
所以,我有 2 个问题:
- 为什么
UIPickerView
会这样? - 如何预防?
感谢您的帮助!
我发现你有两个错误。一个是动作的错字。根据您的代码,它必须是 action: "hidePicker",没有括号。
第二个是你的 pickerToolbar 不应该是 pickerView 的子视图。将其更改为 self.view.addSubview(pickerToolbar),您将看到更改。
干杯,