UIPickerViewDelegate Xcode 8 Swift 3
我的代码是:UIPickerViewDelegate Xcode 8 Swift 3,swift,swift3,uipickerview,Swift,Swift3,Uipickerview,我的代码是: class ViewController: UIViewController,UIPickerViewDelegate, UIPickerViewDataSource { @IBOutlet weak var picherview: UIPickerView! var prodotti = ["AAAAA", "VVVV", "CCCC"] override func viewDidLoad() { super.viewDidLoad()
class ViewController: UIViewController,UIPickerViewDelegate, UIPickerViewDataSource {
@IBOutlet weak var picherview: UIPickerView!
var prodotti = ["AAAAA", "VVVV", "CCCC"]
override func viewDidLoad() {
super.viewDidLoad()
self.picherview.dataSource = self
self.picherview.delegate = self
// 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.
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerview( _ : UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return prodotti.count
}
func pickerview( _ : UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
return prodotti[row]
} //ci consente di determinare quale riga è stata selezionata
func pickerview(_ : UIPickerView, didSelectRow row: Int, inComponent component: Int) {
print("Hai selezionato: \(prodotti[row])")}
}
此代码有错误:
类型“ViewController”不符合协议“UIPickerViewDataSource”
任何解决方案?正确的PickerView语法Swift 3
// DataSource
func numberOfComponents(in pickerView: UIPickerView) -> Int {
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
}
// Delegate
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
}
Swift 3中带完成按钮的PickerView完整示例
class ViewController:UIViewController,UIPickerViewDelegate,UIPickerViewDataSource {
//Text field Connect
@IBOutlet weak var txtPickerTextField: UITextField!
//Array declare
let pickerArray = ["Bangladesh","India","Pakistan","USA"]
var selectedRow = 0;
//Picker View Object
let picker = UIPickerView()
override func viewDidLoad() {
super.viewDidLoad()
//Don't forget to initialize pickerview delegate & datasource
picker.delegate = self
picker.dataSource = self
txtPickerTextField.inputView = picker
//Done Button function called
doneButton();
}
public func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return pickerArray.count
}
public func pickerView(_pickerView:UIPickerView,numberOfRowsInComponent component: Int) -> Int {
return pickerArray.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return pickerArray[row]
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
selectedRow = row;
txtPickerTextField.text = pickerArray[row]
self.view.endEditing(false)
}
//begin Doen Button function
func doneButton(){
let pickerView = picker
pickerView.backgroundColor = .white
pickerView.showsSelectionIndicator = true
var toolBar = UIToolbar()
toolBar.barStyle = UIBarStyle.default
toolBar.isTranslucent = true
toolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1)
toolBar.sizeToFit()
let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.bordered, target: self, action: "donePicker")
let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.bordered, target: self, action: "canclePicker")
toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
toolBar.isUserInteractionEnabled = true
txtPickerTextField.inputView = pickerView
txtPickerTextField.inputAccessoryView = toolBar
}
func donePicker() {
self.txtPickerTextField.text = pickerArray[selectedRow]
txtPickerTextField.resignFirstResponder()
}
func canclePicker() {
txtPickerTextField.resignFirstResponder()
}
//End Doen Button function
}
查看
UIPickerViewDataSource
和UIPickerViewDelegate
的文档。Swift 3中的所有方法都已更改。