我用UIPickerView作为inputView的UITextView。selectRow:函数没有为交替时间正确地选择
这是代码
func textViewDidBeginEditing(_ textView: UITextView) {
let inputView = UIView(frame: CGRect(x: 0,y: 0, width: self.view.frame.width, height: 240))
let codePicker = UIPickerView(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width, height: 240))
codePicker.tag = 2
if codePicker.dataSource == nil {
codePicker.dataSource = self
}
if codePicker.delegate == nil {
codePicker.delegate = self
}
codePicker.showsSelectionIndicator = true
print("selectedBankRow: \(selectedRow)")
codePicker.selectRow(selectedRow, inComponent: 0, animated: true)
inputView.addSubview(codePicker)
textView.inputView = inputView
return
}print语句打印正确的行,但是selectRow:函数选择前一个被选择的值,什么是错误?甚至状态栏也只会在每次UITextView交互中变黑。
发布于 2018-05-16 07:02:19
不要每次都创建UIPickerView
创建全局对象
var codePicker = UIPickerView()在viewDidLoad方法中
添加以下代码
let inputView = UIView(frame: CGRect(x: 0,y: 0, width: self.view.frame.width, height: 240))
codePicker = UIPickerView(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width, height: 240))
codePicker.tag = 2
codePicker.dataSource = self
codePicker.delegate = self
codePicker.showsSelectionIndicator = true
print("selectedBankRow: \(selectedRow)")
codePicker.selectRow(selectedRow, inComponent: 0, animated: true)
inputView.addSubview(codePicker)
textView.inputView = inputView当您解决状态栏问题时
IQKeyboardManager.sharedManager().canAdjustAdditionalSafeAreaInsets = true希望能帮上忙
https://stackoverflow.com/questions/50363620
复制相似问题