2016-01-24 2 views
0

У меня есть вид таблицы, которая имеет пользовательский класс клеток, который имеет 2 метки & текстовое полеSwift пользовательские ячейки, если еще для переключения между этикеткой текстового поля

набор результатов будет отображать одну из меток для всех строк (имя), то есть выражение if else, чтобы показать либо вторую метку, либо текстовое поле.

пример
метка 1 метка 2
Джо блоги Студент
дорога бегун [TextBox]
и т.д ...

однако, когда строка получает прокручивается от экрана новых строки метки-не получают обновился & имеет старую данные, однако метка 1 идеальна.

пример
метка 1 метка 2
Джо блоги Student
дорога бегун Студенческие
и т.д ...

ниже фрагмент кода

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    //let size = CGSizeMake(30, 30) 
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! SBGestureTableViewCell 


    if strPaymentMethod[indexPath.row] == "Student" && dctMemAttEventDetails["StuDiscVenue"]! as! String == "Yes" 
    { 
     cell.txtMemberPaid.hidden = true 
     cell.lblPaymentMethod!.text = strPaymentMethod[indexPath.row] 

    } 

    else 
    { 
     cell.lblPaymentMethod.hidden = true 
     cell.txtMemberPaid.hidden = false 
    } 

    cell.lblMemberName!.text = strFirstname[indexPath.row] + " " + strSurname[indexPath.row] + " : " + strPaymentMethod[indexPath.row] 

    return cell 
} 

в запрашиваемых 2 скриншотах

второй снимок экрана показывает ту же информацию, но, как вы можете видеть для примера le the row (Know itall) должны быть наличными & имеют текстовое поле, однако у него есть ярлык, который говорит «студент», где на первом снимке экрана он прав (вы увидите, что некоторые другие неверны на втором снимке экрана, если смотреть дальше)

Я знаю, что это связано с повторным использованием ячеек, когда они прокручиваются с экрана, но данные не получают обновленный & его специфические данные в инструкции if/else, которая не обновляется/перерисовывается должным образом.

Надеюсь, это очистит ваши вопросы/комментарии скриншотами того, что я пытаюсь достичь. если нет, прокомментируйте комментарий & плохо попробуйте другой подход к показу моей проблемы. , если у вас есть вопросы, свяжитесь со мной как можно скорее.

спасибо за любые & вся помощь.

This is of the tableView when first loaded & no rows scrolled off screen
This is of the tableView when scrolled down then back up

+1

Разве вы не должны устанавливать 'cell.lblPaymentMethod.hidden = false' в свой оператор' if'? – vacawama

ответ

0

мы хотели бы помочь, пожалуйста, объясните более либо с изображениями и видео, а также удалить ненужные данные, если текстовое поле не делает проблему для вас вы можете игнорировать его, и не упоминайте об этом, пожалуйста, будьте конкретны, чтобы мы могли помочь. Удачи.

Редактировать: и да, вы забываете открыть скрытый объект?

+0

Zazu Просто дайте мне знать, я добавил больше информации .. дайте мне знать, если вам нужно больше – Brian

+0

человек, что такое label1 и label2? у вас есть lblPaymentMethod и txtMemberPaid, какие из них не обновляются? – DeyaEldeen