Как я могу показать несколько UIViews, обращаясь к их свойству isHidden? - PullRequest
0 голосов
/ 31 мая 2019

Я хочу показать несколько ячеек UIView в ячейке коллекции на основе приведенных ниже логических операторов.

Эта функция предназначена для представления календаря в приложении на вкладке.Я читаю события из базы данных в Firebase Firestore и сохраняю их в calData.

func configureEventDotFor(cell: CalendarCell, cellState: CellState) {
    let dateString = self.globalFormatter.string(from: cellState.date)
        for event in self.calData.events! {
        let eventDateString = self.globalFormatter.string(from: event.startDate)
        if dateString != eventDateString {
            cell.holidayBar.isHidden = true
            cell.birthdayBar.isHidden = true
            cell.defaultBar.isHidden = true
        } else if event.category == "birthday" {
                cell.birthdayBar.isHidden = false
        } else if event.category == "holiday" {
                cell.holidayBar.isHidden = false
        } else if event.category == "default" {
            cell.defaultBar.isHidden = false
        } else {
            return
        }
    }
}

В calData есть четыре события: 2 по умолчанию, 1 выходной и 1 день рождения.День рождения и праздничные события происходят в один и тот же день, поэтому на этот день должны быть видны как birthdayBar, так и holidayBar.Я также ожидаю увидеть defaultBar для двух других событий, однако при запуске приложения будет виден только holidayBar.

1 Ответ

0 голосов
/ 31 мая 2019

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

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