如何选择UIPicker选项后自动保存并隐藏它(无需保存按钮)
解决方案:点击UIPicker行自动保存选择并隐藏Picker
完全可以实现你要的效果!不需要额外的“保存”按钮,只需要在用户选择Picker选项的回调方法中,完成数据处理后直接隐藏Picker就行。
修改思路
你当前的didSelectRow方法只处理了数据转换和表格刷新,缺少隐藏Picker的逻辑。只需要在数据处理完成后,添加一行代码把Picker设为隐藏状态即可。
修改后的完整代码
// Picker相关代码: func numberOfComponents(in pickerView: UIPickerView) -> Int { return 1 } func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { return fiatArray.count } func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { return fiatArray[row] } func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { displayConvertedValues(forSelected: row) // 选择后直接隐藏Picker picker.isHidden = true // 如果想要平滑的动画效果,可以替换成下面这行: // UIView.animate(withDuration: 0.3) { self.picker.isHidden = true } } func displayConvertedValues(forSelected row :Int) { let chosenfiat = fiatArray[row] getData(fiat: chosenfiat) tableView.reloadData() }
说明
- 当用户点击Picker的某一行时,
didSelectRow会被触发:先执行你原本的数据处理逻辑(转换值、刷新表格),然后立刻把picker.isHidden设为true,Picker就会自动隐藏了。 - 如果希望隐藏过程更流畅,推荐使用UIView的动画方法,让Picker有淡入淡出的过渡效果,能提升用户体验。
内容的提问来源于stack exchange,提问作者Maruta
相关产品推荐
相关产品推荐

