我在Xib上放置了一个UIPickcerView。当我运行应用程序pickerView时,它将显示在屏幕底部,无论我将其放置在Xib上的什么位置,它始终显示在屏幕底部。

您可以在此处看到其放置在屏幕顶部。

ios - UIPIckerView没有显示在所需的位置-LMLPHP

但是当我运行该应用程序时,它位于底部

ios - UIPIckerView没有显示在所需的位置-LMLPHP

到目前为止,这是我的代码

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
}


我在这里想念什么?

最佳答案

因为将pickerView设置为countryTextField的inputView,所以您总是无法使用pickerView。像这样更改您的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
}


希望这会帮助你。

关于ios - UIPIckerView没有显示在所需的位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37786604/

10-12 21:28