gpt4 book ai didi

objective-c - Downpicker 没有出现在 UITableView 中

转载 作者:行者123 更新时间:2023-11-28 15:29:45 28 4
gpt4 key购买 nike

我正在尝试使用 Darkseal Downpicker在一个 UITableView 里面。我以编程方式添加一个 UITextField,然后按如下方式添加 Downpicker:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{

var textField = UITextField()
let cell = UITableViewCell(style: .default, reuseIdentifier: nil)
cell.selectionStyle = .none
textField.text = "TEST"
textField.frame = CGRect(x: CGFloat(0), y: CGFloat(0), width: CGFloat(170), height: CGFloat(30))

var dp: DownPicker!

let test1 = ["test one", "test two"]

dp = DownPicker(textField: textField, withData: test1)

cell.contentView.addSubview(dp)

return cell

}

如果我只添加文本框:

cell.contentView.addSubview(textField)

然后它显示文本字段。但是,如果我如上所示添加 DownPicker:

cell.contentView.addSubview(dp)

我没有显示任何内容,只有一个空的表格 View 。任何有助于理解为什么不显示 DownPicker 的帮助将不胜感激。谢谢。

最佳答案

您需要将 UITextFieldDownPicker 添加到 View 中。如果它类似于 UIPickerView,那么您的 DownPicker 只会在您选择 UITextField 时显示。您还需要将 DownPicker 添加到 view 而不是 cell

view.addSubView(dp)

编辑

“它采用您的代码中已经存在的任何 UITextField(包括添加到 Storyboard的那些):”- https://github.com/Darkseal/DownPicker

编辑 2

通过查看文档,您要做的是通过在 cellForRowAt func

中执行以下操作,将自己添加为 DataPicker 的观察者
dp.addTarget(self, action: #selector(dp_selected(sender:)), for: .valueChanged)

你想添加一个 func 类,里面有 cellForRowAt func

func dp_selected(sender: AnyObject) {
guard let dp = sender as? DropDown else { return }
if let textfield = dp.getTextField() as? UITextField {
guard let indexPath = tableView.indexPath(for: textfield.superview) else { return }
}
}

此函数将检查发件人是否属于 DropDown 类型,如果是,将尝试获取它所附加的 UITextField,如果返回,它将如果该单元格在屏幕上不再可见,则尝试获取它正在使用的 IndexPath 可以是 nil 但希望永远不会出现这种情况并已添加检查以确保它存在。

关于objective-c - Downpicker 没有出现在 UITableView 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44853310/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com