ios - 在 UIPickerView Swift 中获取工作工具栏

标签 ios swift uipickerview uitoolbar

所以我有一个使用 pickerview 的文本字段。但出于某种原因,从 iOS 11.x 开始,它似乎没有出现。我似乎无法弄清楚为什么。我查看了其他一些问题,看来我的实现是相同的,但工具栏不会出现在加载选择器 View 时。 下面是我为 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

最佳答案

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

此外,您似乎没有任何限制。但在向 View 添加约束之前,请确保已将 View 添加到父 View - 如果这不是通过 Storyboard或使用 view.addSubView(picker) 完成的,则约束将导致您的应用崩溃。

使用此示例向您的 View 添加约束。 picker.leadingAnchor.constraint(等于: view.safeAreaLayoutGuide.leadingAnchor)

此外,使用 view.leadingAnchor 作为左约束,使用 view.trailingAnchor 作为右约束,而不是 view.frame.width UIPicker

的宽度

关于ios - 在 UIPickerView Swift 中获取工作工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49660409/

相关文章:

从锁定屏幕接听电话时,iOS 麦克风无法正常工作或无法通过 webrtc 发送语音

ios - 为什么iOS BLE通信时会出现这么多NSNotification,如何释放?

ios - UITableView 弄乱了行内容

IOS后台定位服务,因时而异

ios - Swift:无法打开枚举关联值

ios - textfield becomeFirstResponder 给出 EXC_BAD_ACCESS 代码

ios - 如何在应用程序加载时首先显示 3 个 View 中的 View - IOS

swift - 如何将 CFData 传递给 C char**?

ios - pickerview 不显示数组中的数据

ios - 如何像 uipickerview 中的其他行一样对齐选定的行