Табличное представление данных ячейки Очистить при смахивании iOS Swift 4 - PullRequest
0 голосов
/ 12 июня 2018

Я установил другую ячейку в моем табличном представлении.Я использую текстовое поле и выпадаю в ячейке моего табличного представления.Проблема заключается в том, что когда я выбираю значение в раскрывающемся списке и записываю некоторый текст в текстовое поле, проводите пальцем вниз и затем проводите пальцем вверх, тогда данные, которые я пишу в текстовом поле, пусты, и в моем раскрывающемся списке отображаются те значения, которые я использую для заполнения данных, а не выбранные.значение.Как я сохраняю данные для потери.Если хотите, чтобы, если я проведу пальцем сверху вниз и снизу вверх, мои данные будут отображаться в том виде, в котором я напечатан.Как правильно выполнить эту задачу.Благодарю.Снимок экрана прилагается.enter image description here

enter image description here

Вот мой код,

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let objData = dataArray[indexPath.row]

    if objData.fieldType == "textfield"  && objData.hasPageNumber == "1" {
        let cell: AdPostCell = tableView.dequeueReusableCell(withIdentifier: "AdPostCell", for: indexPath) as! AdPostCell

        if let title = objData.title  {
            cell.txtType.placeholder = title
        }

        if let fieldValue = objData.fieldVal {
            cell.txtType.text = fieldValue
        }
        cell.fieldName = objData.fieldTypeName

        return cell
    }

    else if objData.fieldType == "select" && objData.hasPageNumber == "1"  {
        let cell: AdPostPopupCell = tableView.dequeueReusableCell(withIdentifier: "AdPostPopupCell", for: indexPath) as! AdPostPopupCell

        if let title = objData.title {
            cell.lblType.text = title
        }

        if let fieldValue = objData.fieldVal {
            cell.oltPopup.setTitle(fieldValue, for: .normal)
        }
        var i = 1
        for item in objData.values {
            if item.id == "" {
                continue
            }
            if i == 1 {
                cell.oltPopup.setTitle(item.name, for: .normal)
                cell.selectedKey = String(item.id)
            }
            i = i + 1
        }
        cell.btnPopUpAction = { () in
            cell.dropDownKeysArray = []
            cell.dropDownValuesArray = []
            cell.hasCatTemplateArray = []
            cell.hasTempelateArray = []
            cell.hasSubArray = []
            for items in objData.values {
                if items.id == "" {
                    continue
                }
                cell.dropDownKeysArray.append(String(items.id))
                cell.dropDownValuesArray.append(items.name)
                cell.hasCatTemplateArray.append(objData.hasCatTemplate)
                cell.hasTempelateArray.append(items.hasTemplate)
                cell.hasSubArray.append(items.hasSub)
            }
            cell.popupShow()
            cell.selectionDropdown.show()
        }
        cell.fieldName = objData.fieldTypeName
        return cell
    }
    return UITableViewCell()
}

1 Ответ

0 голосов
/ 12 июня 2018

Проблема с dequeueReusableCell, которая повторно использует ячейку, чтобы избежать потери памяти.Вы можете использовать массив для сохранения данных каждой ячейки при изменениях и обновления в ячейке в cellForRowAt.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...