Как динамически изменять размер ячейки, когда область действия FSCalendar меняется от месяца к неделе? - PullRequest
0 голосов
/ 14 апреля 2020

Я пытался изменить размер ячейки таблицы, когда я меняю свою область FSCalendar с недели на месяц или наоборот. Это работает нормально с calender.scope = .week, и содержимое отображается правильно, как требуется, но границы календаря не обновляются, поэтому размер моей ячейки не изменяется, ее высота.

Я следовал для достижения своей цели, когда я изменяю свою область и перезагружаю календарь.

func calendar(_ calendar: FSCalendar, boundingRectWillChange bounds: CGRect, animated: Bool) {
    self.calenderView.frame.size.height = bounds.height
}

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

Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 14 апреля 2020

Попробуйте этот код

var height: CGFloat?

func calendar(_ calendar: FSCalendar, boundingRectWillChange bounds: CGRect, animated: Bool) {
    self.height = bounds.height
    self.calenderView.frame.size.height = bounds.height
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    // Here you can return specify the height of the cell.
    return height
}

Это означает, что вы установите одинаковую высоту как для ячеек таблицы, так и для просмотра календаря. Если вы хотите, чтобы в горизонтальной оси было несколько ячеек, рассмотрите возможность использования коллекции.

Поэтому нам не нужно указывать ширину для tableVieCell.

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

Надеюсь, этот ответ поможет вам, и, пожалуйста, дайте мне знать, если у вас есть любые проблемы!

...