所以我的UIPickerView并不像我想要的那样工作。它可以在大约3/4的时间内正常工作,但是另外1/4它没有。
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return listsArray.count
}
func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView!) -> UIView
{
activeQuizPlace = row
var pickerLabel = UILabel()
pickerLabel.textColor = UIColor.whiteColor()
pickerLabel.text = listsArray[row]
pickerLabel.font = UIFont(name: "Georgia", size: 22)
pickerLabel.textAlignment = NSTextAlignment.Center
return pickerLabel
}
listsArray包含5个项目(即字符串)。 0-2行在100%的时间内正常工作。但是,当选择第3行时,它偶尔会说第1行是,当选择第4行时,它有时会说第2行是。我认为这个问题与我控制UIPickerView的最后一个函数有关。我只是从这个网站复制了该代码,作为改变文本颜色和字体的方法。在我使用这个功能之前,我从来没有遇到任何问题,或者至少没有注意到它。旁注:我正在使用Xcode 6.3.2
我需要一种方法让拾取器视图正常工作,以及能够更改其字体和颜色。我很乐意帮助解决这个问题,我一直在网上寻找答案2个小时,并且无法提前知道我做错了什么,谢谢!
答案 0 :(得分:3)
我认为您需要从显示的代码中删除行activeQuizPlace = row
,然后在下面添加此功能。
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
activeQuizPlace = row
}
您使用的函数不是使用用户选择的索引调用的,而是使用系统绘制视图所需的索引调用它。
建议的功能应该是你想要的功能(希望如此)。