更改初始行 pickerView
change initial row pickerView
我读到 here 你必须在 viewDidAppear()
中使用 pickerView.selectRow
。虽然 pickerView.selectRow
在 func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
中工作,但在 viewDidAppear()
中不起作用。
我只想将初始行设置为 0 以外的另一行
我在这里错过了什么?
import UIKit
class FirstViewController: UIViewController, UIPickerViewDelegate {
let scrollerOfset = 100
var kiloMeters = [Int](-100...200)
@IBOutlet weak var pickerActive: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
pickerView.selectRow(scrollerOfset, inComponent: 0, animated: false)
}
}
Xcode 给出此错误
Cannot invoke 'selectRow' with an argument list of type '(Int, inComponent: Int, animated: Bool)'
at line 32 (in viewDidAppear(animated: Bool)
)
更新
代码更改为此以使其工作:
import UIKit
class FirstViewController: UIViewController, UIPickerViewDelegate {
let scrollerOfset = 100
var kiloMeters = [Int](-100...200)
@IBOutlet weak var pickerActive: UILabel!
@IBOutlet weak var picker: UIPickerView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
picker.selectRow(scrollerOfset, inComponent: 0, animated: false)
}
}
您的 class 中似乎缺少 pickerView
属性 的声明,请尝试在 pickerActive
下声明它,例如
@IBOutlet weak var pickerActive: UILabel!
@IBOutlet weak var picker: UIPickerView!
然后像 pickerActive
一样通过 IB 连接它
我读到 here 你必须在 viewDidAppear()
中使用 pickerView.selectRow
。虽然 pickerView.selectRow
在 func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
中工作,但在 viewDidAppear()
中不起作用。
我只想将初始行设置为 0 以外的另一行
我在这里错过了什么?
import UIKit
class FirstViewController: UIViewController, UIPickerViewDelegate {
let scrollerOfset = 100
var kiloMeters = [Int](-100...200)
@IBOutlet weak var pickerActive: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
pickerView.selectRow(scrollerOfset, inComponent: 0, animated: false)
}
}
Xcode 给出此错误
Cannot invoke 'selectRow' with an argument list of type '(Int, inComponent: Int, animated: Bool)' at line 32 (in
viewDidAppear(animated: Bool)
)
更新
代码更改为此以使其工作:
import UIKit
class FirstViewController: UIViewController, UIPickerViewDelegate {
let scrollerOfset = 100
var kiloMeters = [Int](-100...200)
@IBOutlet weak var pickerActive: UILabel!
@IBOutlet weak var picker: UIPickerView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
picker.selectRow(scrollerOfset, inComponent: 0, animated: false)
}
}
您的 class 中似乎缺少 pickerView
属性 的声明,请尝试在 pickerActive
下声明它,例如
@IBOutlet weak var pickerActive: UILabel!
@IBOutlet weak var picker: UIPickerView!
然后像 pickerActive