【发布时间】:2015-02-19 16:33:23
【问题描述】:
我想继承 UIPickerView 以创建自定义 DatePicker。我试过这个,但是 Swift 说有一个错误:
在展开可选值时意外发现 nil
在这条线上:(view.viewWithTag(1) as UILabel).text = array[row]
代码如下:
class MyPickerView : UIPickerView, UIPickerViewDataSource, UIPickerViewDelegate{
let array = ["one", "two", "three"]
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override init(frame: CGRect) {
super.init(frame:frame)
self.delegate = self
self.dataSource = self
}
//components / row
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return array.count
}
//view for row
func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView!) -> UIView {
if view == nil {
var view = UIView(frame: CGRectMake(0,0, 150,50))
let label = UILabel(frame:CGRectMake(0,0, 80, 40))
label.tag = 1
view.addSubview(label)
}
(view.viewWithTag(1) as UILabel).text = array[row]
return view
}
//did select row
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
println("has selected row \(row)")
}
谢谢
【问题讨论】:
标签: ios swift datepicker uipickerview