刚开始使用
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)
- }