import UIKit类ViewController: UIViewController,UIPickerViewDataSource,UIPickerViewDelegate { @IBOutlet选择器: UIPickerView!@IBOutlet标签: UILabel!
var Array = ["Iphone", "겔럭시", "베가아이언"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
picker.delegate = self
picker.dataSource = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
return Array[row]
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return Array.count
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
@IBAction func buttonTapped(sender: AnyObject) {
label.text = Array[row] ///this part error "use of unresolved identifier row"
}}
你能向我解释一下我在上面标题中使用的错误行和行之间的区别吗?
为什么我会得到错误的底部一个。我想我声明是正确的。
发布于 2015-07-29 05:05:24
(我假设您希望在用户点击按钮时更改标签的文本)
此函数在选择器视图的值发生更改时运行(您试图使用的row参数,在创建pickerView时运行,而不是在值更改时运行)-
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)另外,您希望创建一个全局变量,以便在您的row函数中使用row ( didSelectRow函数中的row参数只能在该函数中使用)。
所以在类定义下添加这段代码-
var rowSelected = 0接下来,将这个函数添加到代码中-
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
rowSelected = row
}最后,将label.text = Array[row]更改为label.text = Array[rowSelected](这也会使未解决的标识符错误消失)。
所以你的代码应该是这样的-
var rowSelected = 0
var Array = ["Iphone", "겔럭시", "베가아이언"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
picker.delegate = self
picker.dataSource = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
return Array[row]
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return Array.count
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
@IBAction func buttonTapped(sender: AnyObject) {
label.text = Array[rowSelected]
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
rowSelected = row
}希望这能成功。
https://stackoverflow.com/questions/31689390
复制相似问题