Проблемы с рисованием линии во время перезагрузки табличного представления - PullRequest
0 голосов
/ 25 апреля 2018

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

  1. Если, если сделать tableview.reloadData(), то она будет нарисована правильно.Фрейм заголовка таблицы ненулевой
  2. Если я сделаю notesTable.reloadSections([1], with: .automatic), то не будет нарисован правильно.Кадр заголовка таблицы равен нулю!(Мне нужно использовать reloadSections, потому что я хочу анимировать его. reloadData() не дает никакой анимации)

, поэтому очень размытый пример моего viewForHeaderInSection:

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    // some code
     sectionView.setupUI()
    return sectionView
}

Класс заголовка:

class SectionHeaderclass: UITableViewHeaderFooterView{
    func setupUI(){
        let triangleViewArea = ViewWithTriangleLine(triangleCenter:Double(contentView.frame.width - 30))
    }
}

‍? contentView.frame.width возвращает 0, если я оживляю перезагрузку раздела.Зачем?!Как я могу это исправить?

1 Ответ

0 голосов
/ 25 апреля 2018

Если вы хотите обновить заголовок, и у него есть какой-то чертежный вид, лучше назвать setNeedsDisplay() в headerView, а не перезагружать таблицу. Обратите внимание, что reloadSections(...) обновляет ячейки в разделах, а не в заголовке.

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