ios - 如何从具有多个组件的 pickView 中获取确切的值

标签 ios swift uipickerview

我有一个 PickerView 和一个像这样的标签:

enter image description here

我想,当我更改组件中每一行的值时,它会将值分配给上面的标签。

例如:当我在第一个组件中选择“Blue”并在第二个组件中选择“Two”时,它会将“Blue Two”分配给 Label。

我试过这样,但效果不佳,当我在第二个组件中选择第六个值时它会崩溃:

import UIKit

class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {

    @IBOutlet var colorLabel: UILabel!
    let colors = ["Red", "Green", "Blue", "Black", "White"]
    let numbers = ["One", "Two", "Three", "Four" ,"Five", "Six", "Seven"]
    var array = [[String]]()

    override func viewDidLoad() {
        super.viewDidLoad()
        array = [colors, numbers]
    }

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

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

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

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

    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        colorLabel.text = component == 0 ? array[component][row] + " " + array[component][row] : array[component][row] + " " + array[component][row]
    }

}

最佳答案

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

    var selectedValueFirstRow = pickerView.selectedRowInComponent(0)
    var selectedValueSecondRow = pickerView.selectedRowInComponent(1)

    colorLabel.text = colors[selectedValueFirstRow] + " " + numbers[selectedValueSecondRow]
}

你的代码崩溃了,因为它超出了第一个数组的索引

关于ios - 如何从具有多个组件的 pickView 中获取确切的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35762147/

相关文章:

swift - 自定义目录图标 Swift

iphone - 同一 View 中的两个 uipicker

json - Swift:在国家和城市之间的两个pickerView中解析Json

ios - 从 WidgetKit WidgetKit 扩展检测应用程序启动

ios - Swift 2 从 url 变量加载图像错误

ios - CAShapeLayer 没有在 uiview 中正确居中

ios - 应用程序从后台返回后位置不会更新

iphone - UIDatepicker 日期只显示星期一的日期

iOS 允许在给定时间发生一次触摸事件

iphone - NSURLIsExcludedFromBackupKey 在 iOS 5.1 之前崩溃