2015-08-31 20 views
0

用滾動功能包含大約50個文本框的最佳方式是什麼?我只爲iPhone設備製作應用程序,並且我將在視圖的最低三分之一中包含textfiels。我應該使用scrollview嗎?或者是否有更好的功能。謝謝包含帶滾動功能的文本框

回答

0

您可以使用UITableview,但如果表格中的行數超過了屏幕上的數量,則此方法存在問題。在這種情況下,在屏幕外滾動的單元格將被重新使用,並且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 

然後添加兩個新的功能,趕在文本字段中開始/結束編輯:

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 
    } 
1

使用UITableView,您可能有使用UIScrollview內存問題。

0

帶有包含textfields的自定義UITableCells的UITableView可能是您正在尋找的內容。