刚开始使用
Swift并且无法调用UIPickerView的委托方法
到目前为止,我已经将UIPickerViewDelegate添加到我的类中,如下所示:
class ExampleClass: UIViewController,UIPickerViewDelegate
我还创建了我的UIPickerView并为其设置了委托:
@IBOutlet var year: UIPickerView year.delegate = self
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
任何帮助,将不胜感激
解决方法
这实际上是UIPickerViewDataSource协议中的一个方法,因此您还需要确保设置选择器视图的dataSource属性:year.dataSource = self. Swift本地方式似乎是在类扩展中实现协议,如下所示:
class ExampleClass: UIViewController { // properties and methods,etc. } extension ExampleClass: UIPickerViewDataSource { // two required methods func numberOfComponentsInPickerView(pickerView: UIPickerView!) -> Int { return 1 } func pickerView(pickerView: UIPickerView!,numberOfRowsInComponent component: Int) -> Int { return 5 } } extension ExampleClass: UIPickerViewDelegate { // several optional methods: // func pickerView(pickerView: UIPickerView!,widthForComponent component: Int) -> CGFloat // func pickerView(pickerView: UIPickerView!,rowHeightForComponent component: Int) -> CGFloat // func pickerView(pickerView: UIPickerView!,titleForRow row: Int,forComponent component: Int) -> String! // func pickerView(pickerView: UIPickerView!,attributedTitleForRow row: Int,forComponent component: Int) -> NSAttributedString! // func pickerView(pickerView: UIPickerView!,viewForRow row: Int,forComponent component: Int,reusingView view: UIView!) -> UIView! // func pickerView(pickerView: UIPickerView!,didSelectRow row: Int,inComponent component: Int) }