You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何选择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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:23:03