@FlooDwm

Как сделать чтобы и текст второго label менялся?

Class BaseCell : UICollectionViewCell{
        //button
        //label1
        //label2
        //foo() {download data and change label1 & label2 text}
        //foo2() {change label1 and Label2 text}
        //button.addTarget(self, action: #selector(foo2), for: .touchUpInside)
}
class Cell1 : BaseCell {
        addSubView(label1)
        addSubView(button)
}
class Cell2 : BaseCell {
        addSubView(label1)
}


Есть коллекция в ней несколько ячеек. В первой ячейки добавлены кнопка и лейбл1. Во второй ячейки лейбл2. Есть функция которая закачивает данные и меняет значения лейблов. есть кнопка по нажатию по которой должен меняться текст всех лейблов. Когда нажимаю меняется текст лейбла1 но не меняется текст лейбла2. Если уберу кнопку из ячейки1 и вставлю ее в ячейку 2 то тогда меняется текст лейбла2 но не меняется текст лейбла1. Как исправить что бы менялся текст обоих лейблов
  • Вопрос задан
  • 459 просмотров
Пригласить эксперта
Ответы на вопрос 2
maximglobak
@maximglobak
iOS developer
`tableView.reloadData()`
Тебе нужно обновить всю таблицу, соответственно нужно вызвать функцию, которая обновляет все ячейки.
Так же можно обновить все ячейки с анимацией
`- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
`
не помню как в swift будет.
Ответ написан
briahas
@briahas
ObjC, Swift, Python
По хорошему:
- менять тексты в ячейках должен ктото другой, не ячейки. Ячейка только отображает инфу которая к ней приходит.

Так что:
- функции обрабатывающие закачку данных и нажатия должны быть в некоем контроллере
- который после обработки инфы обновит модельки
- и после этого скажет коллекшВьюхе - "Обновись"
- ...или обновит конкретные ячейки... Это уж как надо.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы