Как мне анимировать UILabel внутри UITableViewCell после reloadData ()? - PullRequest
0 голосов
/ 16 января 2020

Я создаю форму и всякий раз, когда пользователь забывает заполнить поле формы, у меня есть механизм, чтобы выделить необходимые текстовые метки для любой из ячеек, в которых пользователь не выбрал значение. После цвета изменение отражается и tableView перезагружается, я хочу анимировать выделенные метки также. Как правильно добиться этого? TableView может загружать смесь пользовательских таблиц tableViewCells, поэтому я хочу знать, что это можно сделать для всех пользовательских ячеек.

Обратите внимание: метки подсвечиваются красным, если они отсутствуют при нажатии кнопки «Отправить». Поскольку пропущенные поля заполнены, метки больше не подсвечиваются, как только им присваивается значение этому полю. Так что теперь мне нужен способ анимировать отдельные метки на ячейках, которые принадлежат различным классам пользовательских ячеек, только когда пользователь пытается нажать кнопку отправки с пропущенными полями

1 Ответ

3 голосов
/ 16 января 2020

Protocols

Вы можете создать протокол, который будут реализовывать ваши пользовательские ячейки, поэтому в каждой пользовательской ячейке вы можете создать собственную реализацию функции, которую вы будете вызывать в методе делегата из табличного представления. :

     tableView(_ tableView: UITableView, 
                willDisplay cell: UITableViewCell, 
                   forRowAt indexPath: IndexPath) {

      guard let customCellThatImplementsFormCell = cell as? FormCell else { return }

/// check if has errors and call either function 

}

в зависимости от того, есть ли в вашей ячейке ошибка или нет

это очень простая идея, но она может выглядеть следующим образом

protocol FormCell {
 func showError()
 func hideError()
}


class FormTextInputCell: UITableViewCell {

}

extension FormTextInputCell: FormCell {

  func showError() {
    // Style the cell and animate what you want
 }

 func hideError() {
    // Style the cell and animate what you want
 }

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