0
我有相關的功能來在這裏顯示我的選擇器中的數據,當相關函數被調用時,選擇器被添加到視圖中,但它是空白的。這是我的課程:UIPickerView不顯示數據Swift 3
class StatePickerView : UIPickerView, UIPickerViewDelegate, UIPickerViewDataSource {
private let states = ["Illinois", "Arizona", "Indiana", "New York", "Oklahoma", "California", "Kentucky", "North Carolina", "Texas", "Massachisetts", "Ohio", "Wisonsin"]
var statePickerDelegate: StatePickerDelegate?
override init(frame: CGRect) {
super.init(frame: frame)
self.backgroundColor = .magenta
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
debugPrint("numberOfComponnets")
return 1
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
switch component {
case 0:
return states[row]
default:
return "row"
}
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return states.count
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
}
我有一個協議方法,但它沒有添加任何東西。
我把它在不同的視圖控制器:
fileprivate let statePicker = StatePickerView()
override func viewDidLoad() {
super.viewDidLoad()
self.statePicker.statePickerDelegate = self
}
,並點擊一個按鈕,然後時,它被添加作爲一個子視圖:
func changeButtonTapped() {
self.changeButtonClicked = true
self.statePicker.statePickerDelegate = self
self.statePicker.reloadAllComponents()
self.view.addSubview(self.statePicker)
self.statePicker.snp.remakeConstraints {
$0.top.equalTo(self.currentStateView.snp.bottom)
$0.bottom.equalTo(self.view.snp.bottom)
$0.width.equalTo(self.view.snp.width)
$0.centerX.equalTo(self.view.snp.centerX)
}
}
我已經通過梳理,幾乎想盡一切有關已經堆棧溢出的事情,但我很難過。我的titleForRow函數甚至沒有被擊中。我的錯誤在哪裏?