gpt4 book ai didi

ios - 使开关功能正常工作

转载 作者:行者123 更新时间:2023-11-30 13:53:24 24 4
gpt4 key购买 nike

我有两个文本字段,我打算将其用作选择器 View ,并带有相应的输入:

@IBOutlet weak var pickerCountry: UITextField!
@IBOutlet weak var pickerAge: UITextField!

var pickOptionCountry = ["Belgium", "France", "Germany", "Netherlands", "Sweden"]
var pickOptionAge = ["1", "2", "3", "4", "5"]

我创建了一个带有两个可能的文本字段的枚举,并为该枚举创建了一个实例:

enum optionsPicker {
case pickerCountry
case pickerAge}

var optionPicked = optionsPicker.pickerTextFieldCountry

在 viewDidLoad 中,我已经设置了选取器 View 工作的所有必需条件,并且它对于单个选取器 View 工作得很好。

但是,当我尝试使用以下开关代码使函数动态化时(为了简单起见,我省略了 pickerview 的其他函数),我只获得 pickerCountry 的输入。谁能解释一下我做错了什么?

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
switch optionPicked {
case .pickerCountry:
return pickOptionCountry[row]
case .pickerAge:
return pickOptionAge[row]
}
}

开关功能似乎无法正常工作,因为我只获得了在 optionPicked 实例中声明的输入。下面是viewDidLoad代码供大家引用:

let pickerView = UIPickerView()
pickerView.delegate = self
pickerView.backgroundColor = UIColor.whiteColor()
pickerView.showsSelectionIndicator = true
pickerCountry.inputView = pickerView
pickerCountry.placeholder = "Country Not Set"
pickerAge.inputView = pickerView
pickerAge.placeholder = "Age Not Set"

最佳答案

我想我现在明白了这个问题。

我认为在这种情况下您不需要枚举。

尝试

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if pickerView == self.countryPickerView {
return pickOptionCountry[row]
}else if pickerView == self.agePickerView{
return pickOptionAge[row]
}
return nil
}

其中 self.countryPickerView 和 self.agePickerView 是您的选择器 View 。我假设您将它们作为属性。

编辑:

在 IBOutlet 下方添加两个属性。

var countryPickerView = UIPickerView()
var agePickerView = UIPickerView()

并在 viewDidLoad() 中初始化它们

我想你想拥有一个 pickerView 并重用它?

我认为这会很困难。使用两个选择器 View 将使您的生活变得更加轻松。

关于ios - 使开关功能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33970588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com