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

标签 objective-c swift xcode uitableview

我正在尝试使用 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/

相关文章:

iphone - 单击任何UIImage并在Objective-C中打开UIImageView

ios - Swift:是否可以获取 UIImagePickerController 使用的 UIImageView 的默认大小?

ios - 如何在 Xcode 10 中打开 Xcode 11 Beta 4 项目?

objective-c - 通过选择以编程方式创建的 collectionView 的 Cell 切换到另一个 ViewController

swift - Swift init 能否仅适用于 Objective C?

iphone - UINavigationItem -title 是否提供辅助功能?

ios - 当应用程序在设备中处于后台模式时,音频无法播放

ios - 如何在 Swift 中将 Parse 中的数据保存到本地 CoreData

iphone - Xcode 4 Interface Builder 性能缓慢

iphone - 在 bundle 中找不到名为 'Main' 的 Storyboard