我在我的Xib上放置了一个UIPickcerView。当我运行应用程序时,pickerView显示在屏幕的底部,无论我把它放在Xib上,它总是显示在屏幕的底部。
在这里你可以看到它放在屏幕上。
但是当我运行应用程序时,它位于底部
到目前为止,这是我的代码
func setupPIckerView(){
self.pickerView.dataSource = self
self.pickerView.delegate = self
pickerView.removeFromSuperview()
countryTextField.inputView = pickerView
}
// MARK: Delegate Methods
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?
{
return "Text"
}
// MARK: Data Source Methods
func numberOfComponentsInPickerView(colorPicker: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return 20
}
我在这里缺少什么?
答案 0 :(得分:1)
您将pickerView始终关闭,因为您已将pickerView设置为countryTextField的inputView。像这样更改你的setupPIckerView
func setupPIckerView(){
self.pickerView.dataSource = self
self.pickerView.delegate = self
}
添加UITextField的委托方法
func textFieldDidBeginEditing(textField: UITextField) {
if (textField == self.countryTextField) {
textField.inputView = UIView()
self.pickerView.hidden = false
}
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
if (textField == self.countryTextField) {
self.pickerView.hidden = true
}
textField.resignFirstResponder()
return true
}
希望这会对你有所帮助。
答案 1 :(得分:0)
因为您使用了textField
inputView
,所以textField
inputView
始终显示在屏幕底部。< / p>
如果您想在其他位置展示inputView
,可以实施CustomView: UIView
来替换inputView
,然后您可以在自定义上显示该视图的位置位置。
答案 2 :(得分:0)
参考您的文本字段以编程方式设置UIpickerview框架。
pickerView.frame = CGRectMake(0,textfield.frame.origin.y+20,self.view.frame.size.width,300);