Задать вопрос
@FlooDwm

Выполнить функцию из другой ячейки в UIcollectionView?

есть коллекция в ней две ячейки кастомизированы по разному.
В одной cell есть кнопка по нажатию которой должен меняться текст label другой ячейки.
Почему то когда я нажимаю на кнопку ничего не меняется?
class cell1:UICollectionViewCell{
//button
button.addTarget(self, action: #selector(handleChangeDate), for: .touchUpInside)
func handleChangeDate(){
  cell2.changeLabel()
}

}

class cell2:UICollectionViewCell{
//label

func changeLabel(){
self.label.text = "123"
}

}
  • Вопрос задан
  • 166 просмотров
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
@PacifiK
Разные ячейки в одной коллекции.
Контроллер, в котором держится коллекшен вью сделать делегатный метод, который будет дергаться от первой ячейки по нажатию на ней кнопки, в этом методе будет например релоадится вторая ячейка с нужным параметром.

Я бы сделал переменную в контроллере ответственную за текст во второй ячейке. И менял ее в делегатном методе, далее релоадил collectionview.
Ответ написан
Комментировать
maximglobak
@maximglobak
iOS developer
Если у тебя только две ячейки и ты 100% знаешь которая тебе нужна, то можно достать эту ячейку из массива ячеек у таблицы по нужному индексу
Пример:
let indexPath = NSIndexPath(row:1 section:0)
if let cell = tableView.cellForRow(at: indexPath) as? customCell {
cell?.label.text = "123"
}
Ответ написан
briahas
@briahas
ObjC, Swift, Python
В одной cell есть кнопка по нажатию которой должен меняться текст label другой ячейки.
Почему то когда я нажимаю на кнопку ничего не меняется?
А как первая ячейка получает вторую? Может переменная в которой должна содержаться ссыль на вторую ячейку пустая? Проверял?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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