首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >swift多重pickerView

swift多重pickerView
EN

Stack Overflow用户
提问于 2015-05-23 15:51:34
回答 1查看 107关注 0票数 1

当我填充选择器视图时,我似乎无法将所有三个选项都显示出来。它只会给出最后选定的列结果。

代码语言:javascript
复制
import UIKit

class ViewThree: UIViewController, UIPickerViewDelegate {

    @IBOutlet var sizePicker: UIPickerView!

    var wheelContents:[[String]] = []
    var one = ["1", "2"]
    var two = ["A", "B", "C"]
    var three = ["X", "Y"]

    @IBOutlet var sparLabel: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        wheelContents = [one, two, three]
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return wheelContents.count
    }

    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return wheelContents[component].count
    }

    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
        return wheelContents[component][row]
    }

    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {

        var wheel = wheelContents[component][row]
        sparLabel.text = "\(wheel)"
    }
}

问题是,我不知道在我的didSelectRow {}中放什么,如果我作为单独的结果生成它们,那么每当我选择三行列的第三个选项时,似乎都会崩溃。如果保持原样,它只会给出最后选定的列和行。我想把它放在一个标签上,像“1 1CY”。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-23 16:46:32

代码语言:javascript
复制
var result = ""

for var i = 0; i < wheelContents.count; i++
{
    let selectedRow = pickerView.selectedRowInComponent(i) //get selected row in component
    let value = wheelContents[i][selectedRow] //get displayed value in component
    result += value + " "
}

sparLabel.text = result
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30414671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档