在UIPickerView Swift中获取一个工作工具栏

时间:2018-04-04 21:04:33

标签: ios swift uipickerview uitoolbar

所以我有一个使用pickerview的文本域。但出于某些原因,从iOS 11.x开始,它似乎没有显示出来。我似乎无法弄清楚为什么。我已经看了一些其他问题,看起来我的实现是一样的,但加载选择器视图时工具栏没有出现。 下面是我声明并设置pickerview工具栏的代码:

let picker: UIPickerView
    picker = UIPickerView(frame: CGRect(x: 0, y: 200, width: view.frame.width, height: 300))



    picker.showsSelectionIndicator = true
    picker.delegate = self
    picker.dataSource = self


    let toolBar = UIToolbar()
    toolBar.barStyle = UIBarStyle.default
    toolBar.isTranslucent = false
    toolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1)
    toolBar.sizeToFit()


    let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.plain, target: self, action: #selector(UploadViewController.donePicker))
    let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)

    toolBar.setItems([spaceButton, doneButton], animated: false)
    toolBar.isUserInteractionEnabled = true

    requestTextField.inputView = picker
    requestTextField.inputAccessoryView = toolBar

1 个答案:

答案 0 :(得分:1)

您需要确保声明translatesAutoresizingMaskIntoConstraints = false或者您设置的任何约束都不起作用。

此外,您看起来没有任何限制。但在您向视图添加约束之前,请确保将视图添加到父视图中 - 如果未通过故事板或使用view.addSubView(picker)进行此操作,则约束将导致您的应用程序崩溃。

使用此示例向视图添加约束。 picker.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor)

此外,左侧约束使用view.leadingAnchor,右侧使用view.trailingAnchor,而view.frame.width

的宽度使用UIPicker