ios - 点击图像时显示工具栏 SWIFT
问题描述
我有一个带有图标的文本字段:
当用户点击文本字段时,我可以显示工具栏。但我需要对图标做同样的事情。我尝试使用手势 rezognizer,但我无法显示工具栏。问题是什么 ?
func createToolbar() {
toolBar.sizeToFit()
let spaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let tamamButton = UIBarButtonItem(title: NSLocalizedString("done", comment: ""), style: .plain, target: self, action: #selector(loadNewPriceAndReload))
toolBar.setItems([spaceButton,tamamButton], animated: false)
toolBar.isUserInteractionEnabled = true
pickerTextField.inputAccessoryView = toolBar
}
func createPickerView() {
pickerView.delegate = self
pickerView.dataSource = self
pickerView.backgroundColor = #colorLiteral(red: 0.1834549492, green: 0.1834549492, blue: 0.1834549492, alpha: 1)
pickerView.tintColor = .white
pickerTextField.inputView = pickerView
}
当我点击图标时,我尝试调用函数,但它不起作用。
这是将图标放在 textField 右侧的扩展
extension UITextField {
func setIcon(_ image: UIImage,tap:UIGestureRecognizer) {
let iconView = UIImageView(frame:
CGRect(x: 7, y: 11, width: 15, height: 10))
iconView.image = image
iconView.isUserInteractionEnabled = true
iconView.addGestureRecognizer(tap)
let iconContainerView: UIView = UIView(frame:
CGRect(x: -50, y: 0, width: 30, height: 32))
iconContainerView.layer.cornerRadius = 3
iconContainerView.layer.maskedCorners = [.layerMaxXMinYCorner, .layerMaxXMaxYCorner]
iconContainerView.addSubview(iconView)
iconContainerView.backgroundColor = #colorLiteral(red: 0.04554035515, green: 0.5175096393, blue: 0.7420636415, alpha: 1)
rightView = iconContainerView
rightViewMode = .always
}
}
解决方案
为了显示 pickerView 是由于 textField 还是其他原因,我总是倾向于采用这种方法:
let picker = UIPickerView()
picker.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(picker)
picker.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor).isActive = true
picker.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor).isActive = true
picker.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor).isActive = true
推荐阅读
- javascript - Vue动态计算输入变化
- javascript - 使用 discord.js 编辑嵌入的问题
- amazon-s3 - 无法将 Nativescript 图像上传到 S3
- c# - Xamarin IOS Firebase AuthDataResult 的错误不包含 ProfileChangeRequest()
- javascript - 悬停同级时更改组件的样式
- azure-devops - 如何使用 Fluent Migrator 任务构建 Azure Devops Pipeline?
- c# - SoapCore 未正确解析 SOAP WSDL 中的数据契约和数据成员
- php - Laravel 在表单提交时发送电子邮件
- discord.py - 分页 - Discord.py 重写
- clojure - 锁定和 atom/reset!/swap! 之间有什么区别!在 Clojure 中