包含具有滚动功能的文本字段

Contain textfields with scroll function

包含大约 50 个具有滚动功能的文本字段的最佳方式是什么?我只为 Iphone 设备制作了一个应用程序,我将在视图的最低三分之一处包含文本字段。我应该使用滚动视图吗?或者有没有更好的功能。谢谢

使用 UITableView,使用 UIScrollview 可能会出现内存问题。

带有包含文本字段的自定义 UITableCells 的 UITableView 可能就是您正在寻找的。

您可以为此使用 UITableview,但如果 table 中的行数超过屏幕上可以显示的行数,则此方法会出现问题。在这种情况下,滚动到屏幕外的单元格将被重新使用,textField 的内容将丢失。

解法:

text fields 设置委托,然后使用 delegate 方法在输入名称时获取名称。

首先,将变量添加到您的视图控制器,以保存数组和当前正在编辑的文本字段的行号。

var arrayOfNames : [String] = [String]()
var rowBeingEdited : Int? = nil

然后,在您的 cellForRowAtIndexPath 方法中,添加:

cell.nameInput.text = "" // just in case cells are re-used, this clears the old value
cell.nameInput.tag = indexPath.row
cell.nameInput.delegate = self

然后添加两个新函数,在文本字段begin/end编辑时捕捉:

func textFieldDidEndEditing(textField: UITextField) {
let row = textField.tag
if row >= arrayOfNames.count {
    for var addRow = arrayOfNames.count; addRow <= row; addRow++ {
        arrayOfNames.append("") // this adds blank rows in case the user skips rows
      }
  }
    arrayOfNames[row] = textField.text
    rowBeingEdited = nil
 }

    func textFieldDidBeginEditing(textField: UITextField) {
    rowBeingEdited = textField.tag
  }