【问题标题】:PickerView to return certain text string based on picker selectionPickerView 根据选择器选择返回某些文本字符串
【发布时间】:2017-12-04 18:45:48
【问题描述】:

我想做的是根据从选取器中选择的内容显示特定的文本字符串。例如,选择器中的蓝色、绿色和黄色选项可供选择。当您选择蓝色时,一些文本(例如,我爱海洋!)会输出到标签。

除了选择器中选择的内容之外,我无法更改任何其他内容的输出。

相关代码示例,

let colors = ["Blue", "Green", "Yellow"]

func numberOfComponents(in pickerView: UIPickerView) -> Int
{
    return 1
}

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?
{
    return colors[row]

}

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int
{
    return colors.count
}

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
{
    label.text = colors[row]
}    //but I want this to return a text string when Blue is 'picked', another different string when Green is 'picked', and a third sting when Yellow is 'picked'

我已经设置好了,所以一旦在 pickerView 中进行了选择,数据就会出现在标签上,但是就像我说的那样,我只能从 pickerView 本身获取数据来显示。我希望根据您在选择器中的选择显示一些其他数据(您看不到)。

【问题讨论】:

  • didSelectRow 委托方法的实现在哪里?
  • 我只是没有把它包括在这里...我现在把它放在帖子上..

标签: ios uipickerview uipickerviewcontroller uipickerviewdatasource


【解决方案1】:

您在didSelectRow 中输入的代码正在设置颜色名称。如果您想要选定的行号,则将标签设置为选定的行。

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
{
    label.text = "\(row + 1)"
}

【讨论】:

  • 好吧...明白了!谢谢!所以我想我并不完全理解我需要如何将颜色与我想要出现的数字相关联。现在,我已经用简单的方式设置它,它会返回我选择的任何颜色。我如何对其进行编程,以便每当我选择它提供数字的颜色时?
  • 数字是选择器行。颜色根据数字从colors数组中获取。
  • 如果我要显示的数字是 22 或 23 或 51 怎么办?或者如果它根本不是一个数字怎么办?但是还有其他文字吗?
  • 那么你需要不同的代码。如果您有特定要求,请在您的问题中清楚地说明该信息。到目前为止,您说您想要 1、2、3 与您的 colors 数组中的颜色顺序相匹配,因此有一个简单的实现。但是对于其他一些看似任意的数字到颜色的映射,您需要一个不同的解决方案。但这不是您在问题中提出的问题。
  • 明白!我会将其更改为更具体的。感谢您的建议!
猜你喜欢
  • 2016-10-11
  • 1970-01-01
  • 2018-06-15
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 2019-05-09
相关资源
最近更新 更多