Ios 如何将选定的UIPickerView行元素与数组元素进行比较?
这是我的UIPickerView数组Ios 如何将选定的UIPickerView行元素与数组元素进行比较?,ios,swift,uipickerview,Ios,Swift,Uipickerview,这是我的UIPickerView数组 import UIKit class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate { @IBOutlet weak var categoryFactsPincker: UIPickerView! @IBOutlet weak var randomFactLabel: UILabel! 我想使用此按钮比较为打印不同类别而选
import UIKit
class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
@IBOutlet weak var categoryFactsPincker: UIPickerView!
@IBOutlet weak var randomFactLabel: UILabel!
我想使用此按钮比较为打印不同类别而选择的数组元素和UIPickerView
let categoryFactsArray = ["Interesting Facts", "Fun Facts", "Nutrition Facts", "Funny Facts", "Unbelievable Facts", "Did You Know", "Animal Facts", "Mind Blowing Facts", "Weird Facts"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
categoryFactsPincker.delegate = self
categoryFactsPincker.dataSource = self
}
}试试这个
@IBAction func buttonPressed(_ sender: UIButton) {
if categoryFactsArray[row] == 0 {
updateInterestingFacts()
}else if categoryFactsPincker.selectedRow(inComponent: 1){
}
}
func updateInterestingFacts(){
let random = interestingFactsArray[Int(arc4random_uniform(UInt32(interestingFactsArray.count)))]
// randomFactLabel.text = random
let alert = UIAlertController(title: "Random Fact", message: "\(random)", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
self.present(alert, animated: true)
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return categoryFactsArray.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return categoryFactsArray[row]
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
categoryFactsArray[row]
}
此打印应显示所选值,以便您可以使用进行比较,或根据需要执行任何操作
@IBAction func buttonPressed(_ sender: UIButton) {
if categoryFactsArray[row] == 0 {
updateInterestingFacts()
}else if categoryFactsPincker.selectedRow(inComponent: 1){
}
}
func updateInterestingFacts(){
let random = interestingFactsArray[Int(arc4random_uniform(UInt32(interestingFactsArray.count)))]
// randomFactLabel.text = random
let alert = UIAlertController(title: "Random Fact", message: "\(random)", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
self.present(alert, animated: true)
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return categoryFactsArray.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return categoryFactsArray[row]
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
categoryFactsArray[row]
}
此打印应显示所选的值,以便您可以使用进行比较,或根据需要进行比较。最后,我用以下代码修复了它:
@IBAction func buttonPressed(_ sender: UIButton) {
if categoryFactsPincker.selectedRow(inComponent: 0) == 0 {
updateInterestingFacts()
}else{
let categorySelected = categoryFactsArray[categoryFactsPincker.selectedRow(inComponent: 0)]
print(categorySelected)
}
}
最后,我用以下代码修复了它:
@IBAction func buttonPressed(_ sender: UIButton) {
if categoryFactsPincker.selectedRow(inComponent: 0) == 0 {
updateInterestingFacts()
}else{
let categorySelected = categoryFactsArray[categoryFactsPincker.selectedRow(inComponent: 0)]
print(categorySelected)
}
}
它不工作,Xcode返回一个错误给我。如果categoryFactsArray[行]==0,则此行中“使用未解析的标识符‘行’”{很抱歉,只是复制您的代码,但现在我做了一个简单的更改,就像您以前做的那样,如果用户选择索引0他调用updateInterestingFacts函数,如果用户选择一个索引>0代码打印该索引,您可以使用变量categorySelected来选择一个值,或者CategoryFactSpinker.selectedRow(不完整:0要使用选定的索引,您可以在数组中插入一个值“Random values”,如果第一个索引不调用此函数,我现在不知道如何编写代码。它不起作用。Xcode将返回一个错误。如果categoryFactsArray[row]==0,则在此行中使用未解析的标识符“row”。){很抱歉,只是复制您的代码,但现在我做了一个简单的更改,就像您以前做的那样,如果用户选择索引0他调用updateInterestingFacts函数,如果用户选择一个索引>0代码打印该索引,您可以使用变量categorySelected来选择一个值,或者CategoryFactSpinker.selectedRow(不完整:0要使用选定的索引,可以在数组中插入一个值“Random values”。如果第一个索引不调用此函数,我现在不知道如何编写代码。