我使用了最新版本的 Xcode 和最新版本的 Swift。我按照 link 的步骤进行操作但是pickerview没有出现在模拟器中。代码如下。有人可以帮我检查一下吗?非常感谢!
导入 UIKit类 ViewController: UIViewController, UIPickerViewDelegate {
@IBOutlet var imageView: UIImageView! @IBOutlet var infoLabel:UILabel! @IBOutlet 变量选择器:UIPickerView! //var fruits: [String] = [String]() var fruits = ["挑选一种水果", "Apples", "Oranges", "Lemons", "Blueberries"] 覆盖 func viewDidLoad() { super.viewDidLoad() imageView.image = UIImage(named: "fruit.jpg") //picker.delegate = self //在加载 View 后做任何额外的设置,通常是从一个 nib。 } 覆盖 func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() //处理所有可以重新创建的资源。 } func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int{ 返回 1 } func pickerView(pickeView:UIPickerView,numberOfRowsInCompoment 组件:Int)->Int{ 返回 5 } func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent 组件: Int) -> String?{ 返回水果[行] } func pickerView(pickerView:UIPickerView,didSelectRow 行:Int,inComponent 组件:Int){ varfruitSelected = 水果[行] 开关(水果选择){ 案例“苹果”: imageView.image = UIImage(named: "apple.jpg") infoLabel.text = "这些苹果是红色的" 案例“橙子”: imageView.image = UIImage(named: "orange.jpg") infoLabel.text = "这些橙子是黄色的" 案例“柠檬”: imageView.image = UIImage(named: "Lemon.jpg") infoLabel.text = "这些柠檬是绿色的" 案例“蓝莓”: imageView.image = UIImage(named: "Blueberry.jpg") infoLabel.text = "这些蓝莓是蓝色的" 默认: imageView.image = UIImage(named: "fruit.jpg") infoLabel.text = "摘水果" } } }
假设您在 Storyboard 中正确设置了委托(delegate)和数据源,则您的问题是方法签名不正确。注意方法签名 (pickeView: UIPickerView, numberOfRowsInCompoment component: Int)
中的拼写错误。 pickeView
中缺少 r
并在 numberOfRowsInCompoment
中使用 m
而不是 n
.
试试下面的函数,你应该已经准备好了......
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) ->Int{
return 5
}
关于ios - Swift 2.1 - UIPickerView 不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33094826/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |