Swift 3:TPKeyboardAvoidingScrollView 在 UITableViewCell 中的一个 UITextField 上无法正常工作

Posted

技术标签:

【中文标题】Swift 3:TPKeyboardAvoidingScrollView 在 UITableViewCell 中的一个 UITextField 上无法正常工作【英文标题】:Swift 3: TPKeyboardAvoidingScrollView not working properly on one UITextField in UITableViewCell 【发布时间】:2017-08-09 02:25:34 【问题描述】:

我遇到了这个问题,我有三个单元格,都是由同一个函数创建的,但由于某种原因,第三个单元格有滚动问题(姓氏单元格)。

我正在使用TPKeyboardAvoidingTableView,这通常是有史以来最伟大的事情,但由于某种原因它不喜欢这个单元格。这是代码:

    guard let cell = tableView.dequeueReusableCell(withIdentifier: SignUp_Constants.DetailsCellIdentifier, for: indexPath) as? DetailsCell else  return UITableViewCell() 

    cell.isUserInteractionEnabled = true
    cell.detailsInputTextField.removeTarget(nil, action: nil, for: .allEvents)
    cell.detailsInputTextField.addTarget(cell, action: #selector(DetailsCell.textFieldDidChange(_:)), for: .editingChanged)

    cell.detailsInputTextField.autocapitalizationType = .none
    cell.detailsInputTextField.spellCheckingType = .default
    cell.detailsInputTextField.isSecureTextEntry = false
    cell.detailsInputTextField.isUserInteractionEnabled = true
    cell.detailsInputTextField.keyboardType = .default

    cell.delegate = self

    var title = SignUp_Constants.getTitle(forCellType: currentSectionView, atRow: indexPath.row)
    cell.setTextFieldText(toValue: signUpDictionary[title] as? String ?? "")        
    cell.setTitleLabel(to: title)

    return cell

在整个项目中由相同代码创建的每个其他单元格都可以正常工作。

任何帮助,提前感谢!

【问题讨论】:

【参考方案1】:

经过很多麻烦和敲桌子后,我决定在用户​​单击文本字段时输入tableView.scrollToRow(row: x, atIndexPath: indexPath),错误就消失了!我已经多次使用这个 pod,并且从来没有必须使用这个功能,所以如果有人有任何其他解决方案,很高兴听到他们的声音!

【讨论】:

以上是关于Swift 3:TPKeyboardAvoidingScrollView 在 UITableViewCell 中的一个 UITextField 上无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

swift swift_optional3.swift

swift swift_optional3.swift

swift takasek / CodePiece.swiftのSwift 3.1版

我可以在 Swift 3 项目中使用 Swift 2.3 框架吗?

将 swift 2.3 转换为 swift 3 错误

Swift 3.0 on Ubuntu 15.10